首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FileInfo.LastWriteTime可能有误导性。还有别的办法吗?

FileInfo.LastWriteTime可能有误导性。还有别的办法吗?
EN

Stack Overflow用户
提问于 2010-10-26 21:02:38
回答 2查看 5.9K关注 0票数 4

我使用FileInfo.LastWriteTime来知道上一次更改某个文件的确切时间,比方说"c:\temp\test_file.txt“是在什么时候发生的。

当某个人实际打开文件,进行更改,然后保存--这个路径的FileInfo.LastWriteTime将随着文件更改的时间被更新时,它会很好地工作。

但是在以下情况下会发生什么:

复制一个名称相同但内容与磁盘上其他位置不同的文件,并将其粘贴到"c:\temp\“文件夹中(覆盖现有文件)--文件"c:\temp\test_file.txt”实际上已被更改(被同名但内容不同的文件覆盖),但文件"c:\temp\test_file.txt“的LastWriteTime并不是被重写的时间,但实际上是我们复制的文件的"LastWriteTime”,并且可能比它被覆盖的时间早得多。

如果我需要知道文件被覆盖的时间,还有其他方法吗?请不要建议解决方案,比如在FileChange事件上注册--我在寻找一个解决方案,在这个解决方案中,我不需要让程序一直像服务一样运行--我的应用程序可能不会一直被执行,而且我需要知道文件何时被覆盖,即使此时我的应用程序已经关闭。

EN

回答 2

Stack Overflow用户

发布于 2010-10-26 21:08:57

在您在问题中描述的情况下,您可以使用文件创建时间,因为当您复制文件时,这将发生变化。

我建议您需要检查最后的写入时间和文件创建时间,以确定大多数更改。

否则,您可以查看文件大小,如果这还不够,则需要对文件内容生成一个散列。

编辑

如果使用的是FileInfo对象,则需要调用Refresh方法来更新任何最后的写入时间、创建时间、文件存在等属性。

票数 1
EN

Stack Overflow用户

发布于 2013-12-24 13:18:57

为此,您需要使用FileInfo .CreationTime() &以及FileInfo .LastWriteTime()方法组合进行检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4028004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档