1

我有一个错误。为什么我不知道我想要这个文件的最后修改日期。但是我有问题 在此处输入图像描述

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

在此处输入图像描述

文件属性: 在此处输入图像描述

4

4 回答 4

7

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

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

如果 path 参数中描述的文件不存在,则此方法返回 1601 年 1 月 1 日午夜 12:00 (CE) 协调世界时 (UTC),调整为本地时间。

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

于 2017-04-05T14:08:05.227 回答
2

来自 msdn

如果 path 参数中描述的文件不存在,则此方法返回 1601 年 1 月 1 日午夜 12:00 (CE) 协调世界时 (UTC),调整为本地时间。

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

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

于 2017-04-05T14:06:12.507 回答
0

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

文档有以下注释:

如果 path 参数中描述的文件不存在,则此方法返回 1601 年 1 月 1 日午夜 12:00 (CE) 协调世界时 (UTC),调整为本地时间。

于 2017-04-05T14:07:27.100 回答
0

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

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

补充笔记

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