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

Eu estou usando o código a seguir para gravar o horário de data de modificação de um diretório para um label

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

Ele retorna a data 31/12/1600 7:00:00 PM que eu não tenho idéia de onde está recebendo essa data. Alguém pode me ajudar a entender por que está retornando essa data e como posso corrigi-lo? Estou usando o .NET 3.5

Da documentação :

Se o diretório descrito no parâmetro path não existir, esse método retornará 12:00 (meia-noite), 1º de janeiro de 1601 AD (CE) Tempo Universal Coordenado (UTC), ajustado para a hora local.

Então presumivelmente seu fuso horário é UTC-5 (em janeiro), e o diretório não existe …

primeiro pensamento é que o seu tempo está definido corretamente. O segundo pensamento é clicar com o botão direito nessa pasta e ver o que ela diz nas propriedades. Por fim, eu faria uma nova pasta de teste e executaria os testes GetLastWriteTime para que você saiba o que está recebendo de volta.

GetLastWriteTime nem sempre retorna um data time confiável, use este

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

Pergunta antiga, mas hoje enfrentei essa questão. Essa data em particular também é retornada quando seu caminho é inválido ou o arquivo não existe, porque não existe uma exceção incorporada em nenhum desses casos.