GetLastWriteTime restituisce 31/12/1600 7:00:00 PM

Sto usando il seguente codice per scrivere l’ora modificata di una directory su un’etichetta

string selectedPath = comboBox1.SelectedItem.ToString(); DateTime lastdate = Directory.GetLastWriteTime(selectedPath); datemodified.Text = lastdate.ToString(); 

Restituisce la data 31/12/1600 7:00:00 PM di cui non ho idea da dove stia ottenendo quella data. Qualcuno può aiutarmi a capire perché restituisce quella data e come posso risolverlo? Sto usando .NET 3.5

Dalla documentazione :

Se la directory descritta nel parametro path non esiste, questo metodo restituisce 12:00 mezzanotte, 1 gennaio, 1601 AD (CE) Coordinated Universal Time (UTC), adattato all’ora locale.

Quindi presumibilmente il tuo fuso orario è UTC-5 (a gennaio), e la directory non esiste …

il primo pensiero è che il tuo tempo è impostato correttamente. Il secondo pensiero è quello di fare clic destro su quella cartella e vedere cosa dice nelle proprietà. Infine creerò una nuova cartella di test e eseguirò quel bit di test GetLastWriteTime su di esso in modo che tu sappia cosa stai tornando.

GetLastWriteTime non restituisce sempre data affidabile, utilizzare questo

 string selectedPath = comboBox1.SelectedItem.ToString(); DateTime now = DateTime.Now; TimeSpan localOffset = now - now.ToUniversalTime(); DateTime lastdate = File.GetLastWriteTimeUtc(selectedPath) + localOffset; datemodified.Text = lastdate.ToString(); 

Vecchia domanda, ma oggi ho affrontato questo problema. Quella data particolare viene anche restituita quando il percorso non è valido o il file non esiste, perché in nessuno di questi casi non esiste un’eccezione incorporata.