首页 > 解决方案 > 显示上次修改(日期)代码有效但输出错误

问题描述

所以我有这个

 Console.WriteLine("Last Updated: " + System.IO.File.GetLastWriteTimeUtc(@"D:\somepath")

这确实有效,但是输出错误,我得到的是

1601 年 1 月 1 日出于某种原因..

有任何想法吗 ?

标签: c#.net

解决方案


从该方法的文档中GetLastWriteTimeUtc

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

问题是该文件不存在。

您可能想知道为什么会发生这种情况。原因是底层系统调用返回一个 64 位整数,该整数表示自上次修改文件时 1601 年 1 月 1 日 UTC 午夜以来经过的 100 纳秒间隔数(来源)。作为一种特殊情况,如果文件不存在,则底层系统调用返回0.

如果 .NET 能做一些事情来处理这种特殊情况,那就太好了,但事实并非如此。因此,如果文件不存在,则GetLastWriteTimeUtc返回最早的可能日期。


推荐阅读