如何获取文件的最后修改日期?

时间:2017-04-05 13:58:01

标签: c# getfiles fileversioninfo

我有一个错误。为什么我不知道我想把这个文件最后修改日期。但我有问题 enter image description here

在我的代码中:日期总是来临01011601为什么?你有什么建议吗?

enter image description here

文件属性: enter image description here

4 个答案:

答案 0 :(得分:7)

如果您从(pthh)获取文件的路径不是您的应用运行的目录,我希望这个日期。
当您调用File.GetLastWriteTime(sqzfiles[i])时,您现在只依赖文件名,因此正在使用相对路径。最有可能的是,该文件不在您应用的目录中(尽管pthh中的 )。

由于相对路径上的文件不存在,documentation将解释您的意外日期:

  

如果path参数中描述的文件不存在,则此方法返回美国俄勒冈州公元1601年1月1日午夜12点(协调世界时(UTC)),调整为当地时间。

如果文件被另一个应用程序锁定,我也会看到这种情况发生,这是值得的。

答案 1 :(得分:2)

来自msdn

  

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

https://msdn.microsoft.com/en-US/library/system.io.file.getlastwritetime(v=vs.110).aspx

我猜你的文件找不到。尝试指定文件的完整路径

答案 2 :(得分:0)

当您尝试访问写入时间时文件是否确实存在?

documentation有以下注释:

  

如果path参数中描述的文件不存在,则此方法返回美国俄勒冈州公元1601年1月1日午夜12点,协调世界时(UTC),调整为当地时间。

答案 3 :(得分:0)

在这种情况下,您的路径似乎无效。请参阅MSDN文档:

您可以通过创建一个小型测试应用程序(即sandbox)来确定问题的根源,以验证您的代码是否按预期工作。为尽量减少潜在错误,请尽量简化测试(例如,使用硬编码文件路径)。

附加说明

  • 根据经验,我知道GetLastWriteTime(...)方法并不总是按预期工作。在某些情况下,即使文件已被修改/更改,该方法也不会返回更新的时间戳。此方案与以下内容有关:
    • 已应用于文件的锁定类型
    • 正在使用的Windows磁盘驱动程序