GetLastWriteTime返回12/31/1600 7:00:00 PM

我使用以下代码将目录的修改时间写入标签

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

它返回日期12/31/1600 7:00:00 PM,我不知道从哪里获取该日期。 任何人都可以帮助我理解为什么它会返回该日期以及如何解决它? 我正在使用.NET 3.5

从文档 :

如果path参数中描述的目录不存在,则此方法返回到公元1601年1月1日午夜12点(CE)协调世界时(UTC),调整为当地时间。

所以大概你的时区是UTC-5(1月份),目录不存在……

首先想到的是你的时间设置正确。 第二个想法是右键单击该文件夹,看看它在属性中的含义。 最后,我创建了新的测试文件夹并对其运行了一些GetLastWriteTime测试,以便您知道自己要回来的内容。

GetLastWriteTime并不总是返回可靠的日期时间,请使用它

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

老问题,但今天我遇到了这个问题。 当您的路径无效或文件不存在时,也会返回该特定日期,因为在任何这些情况下都没有内置exception。