获取上次写入时间返回一个奇怪的值

Wil*_*son 4 c# datetime last-modified windows-7

我试图在Windows 7中获取文件的最后修改日期 - 我刚编辑它,所以在属性中,Last Modified值列为11/30/2013 4:55 PM.

但是,当我使用以下方式访问文件时:

DateTime lastMod = File.GetLastWriteTime(file);
Run Code Online (Sandbox Code Playgroud)

我输出的值:

MessageBox.Show(lastMod.toString());
Run Code Online (Sandbox Code Playgroud)

12/31/1600 6:00:00 PM无论创建时间,修改时间等如何,无论我使用哪个文件,这都会给出.

Jon*_*eet 10

我怀疑你使用了错误的文件名.指定的文档GetLastWriteTime:

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

因为这是你得到的值,它表明路径参数中描述的文件很可能不存在 - 所以你应该检查它的值file并记住,如果它是一个相对文件名,它可能不是相对于你期待的目录.

  • 一定有的,我去看看 为什么 `GetLastWriteTime` 被设计为返回这样的“默认”值,而不是抛出异常? (2认同)
  • @Wilson:我怀疑这正是底层文件系统API的作用.我同意这似乎有点奇怪. (2认同)