文件源创建时间

本文关键字:时间 创建 文件 | 更新日期: 2023-09-27 18:21:26

我正在处理一个项目,需要在本地和远程位置机器中验证文件。我试过几件事。首先,我尝试检查两个文件的CreationTimeUTC。我发现创建时间存储的是文件在相关文件系统上创建的时间,而不是文件第一次创建的时间。只要文件名匹配并且是最新版本。我"真的"不想读取整个内容并获得MD5哈希或其他形式的标识符,因为读取文件可能是不可能的。(例如,获取另一个程序打开的文件的信息会使这种方法变得不可能)

所以基本上就是我要问的;文件头中是否存储了表示文件创建时间或类似内容的内容?或者是否有人可以推荐其他设置或方法。

提前谢谢。

文件源创建时间

当每个文件从本地机器复制到远程机器时,使用File.GetCreationTime将文件的创建时间分配给string,然后使用File.SetCreationTime设置远程机器副本的创建时间,使其与原始文件的创建时刻相匹配。

文件创建时间始终取决于创建文件的机器。简单的解决方案是将文件存储在您可以控制的机器上,并保持它们的时间同步。

在我的脑海中,我可以想出两种方法来解决你的问题:

  • 获取远程和本地系统日期时间并使用比较文件时间时两者之间的差异。

  • 如果文件从未被删除,您可以随时检查它们的"生存期"通过计算文件创建和上次创建之间的时间修改

然而,这两种策略都可以通过手动更改系统日期时间来绕过。

您尝试过使用File.GetLastWriteTime吗?至少在将文件从笔记本电脑复制到文件服务器时,LastWriteTime保持不变。

(看起来有一个已知的转换错误,导致从NTFS复制到FAT时,时间和日期信息有时会出错,反之亦然)。