2012-05-14 5 views
9

Sto usando il seguente codice per scrivere la data di modifica tempo di una directory a un'etichettaGetLastWriteTime ritorno 1600/12/31 19:00:00

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

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

risposta

29

Da the documentation:

Se la directory descritta nel parametro percorso non esiste, questo metodo restituisce 12:00 a mezzanotte, 1 Gennaio 1601 AD (CE) universale coordinato Ora (UTC), adattata all'ora locale.

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

+4

Dimmi solo Jon, dove ricordi tutto questo? –

+8

@NikhilAgrawal cercando la definizione della chiamata su msdn. Una persona non deve ricordare tutto, deve solo ricordare di guardare –

0

primo pensiero è quello di è il vostro 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.

+0

lunedì 7 maggio 2012, 16:06 PM è la data in una delle cartelle. È solo strano per me. Il codice ha senso, ma ciò che ritorna non è – heinst

+0

Immagino quindi che la stringa non sia corretta –

0

GetLastWriteTime non sempre tornare data ora 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(); 
0

vecchia questione, 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.