【问题标题】:Get Last Write Time is returning a strange valueGet Last Write Time 返回一个奇怪的值
【发布时间】:2013-11-30 23:05:33
【问题描述】:

我正在尝试在 Windows 7 中获取文件的最后修改日期 - 我刚刚对其进行了编辑,因此在属性中,最后修改的值列为 11/30/2013 4:55 PM

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

DateTime lastMod = File.GetLastWriteTime(file);

我输出值:

MessageBox.Show(lastMod.toString());

这总是给出12/31/1600 6:00:00 PM,无论我正在使用哪个文件,无论创建时间、修改时间等如何。

【问题讨论】:

    标签: c# datetime windows-7 last-modified


    【解决方案1】:

    我怀疑您使用了错误的文件名。 documentation for GetLastWriteTime 指定:

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

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

    【讨论】:

    • 一定是,我去看看。为什么GetLastWriteTime 设计为返回这样的“默认”值,而不是抛出异常?
    • @Wilson:我怀疑这正是底层文件系统 API 所做的。我同意这似乎有点奇怪。
    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多