c# - 显示上次修改(日期)代码有效但输出错误
问题描述
所以我有这个
Console.WriteLine("Last Updated: " + System.IO.File.GetLastWriteTimeUtc(@"D:\somepath")
这确实有效,但是输出错误,我得到的是
1601 年 1 月 1 日出于某种原因..
有任何想法吗 ?
解决方案
如果 path 参数中描述的文件不存在,则此方法返回 1601 年 1 月 1 日午夜 12:00 (CE) 协调世界时 (UTC)。
问题是该文件不存在。
您可能想知道为什么会发生这种情况。原因是底层系统调用返回一个 64 位整数,该整数表示自上次修改文件时 1601 年 1 月 1 日 UTC 午夜以来经过的 100 纳秒间隔数(来源)。作为一种特殊情况,如果文件不存在,则底层系统调用返回0
.
如果 .NET 能做一些事情来处理这种特殊情况,那就太好了,但事实并非如此。因此,如果文件不存在,则GetLastWriteTimeUtc
返回最早的可能日期。
推荐阅读
- jinja2 - Jinja 中的替换和评估
- java - 以编程方式声明视图时应用了哪些单位?
- python - Pandas.apply returning random substrings
- vue.js - 如何在 VS Code 的 vue 文件中为 sass 启用自动完成/IntelliSence?
- typo3 - typo3 8 中不再有默认链接类?
- runnable - 返回类型为 void 的执行器服务
- java - 创建 Rss 文档时,带有重音符号的字符无法在 Java Server Pages 上写入
- sql - SQL 表关系
- r - R中光栅立方体可视化中的RGB颜色
- vector - 使用 iter().filter().collect() 而不是 Vec<&&String> 后如何获取 Vec<&String>