我有一个项目正在处理我需要验证本地和远程位置计算机中的文件的位置。我尝试过几件事。首先,我尝试检查两个文件的CreationTimeUTC。我发现创建时间存储了在相关文件系统上创建文件的时间,而不是文件首次创建的时间。只要文件名匹配且是最新版本。我不“真的”想要读取整个内容并获得MD5哈希或其他形式的标识符,因为读取文件可能是不可能的。 (获取由另一个程序打开的文件的信息会使这种方法无法实现)
基本上我要问的是什么; 文件头中是否存有表示文件创建时间或类似内容的内容?或者,如果有人可以推荐使用其他设置或方法。
提前致谢。
答案 0 :(得分:1)
将每个文件从本地计算机复制到远程计算机时,使用string
将文件的创建时间分配给File.GetCreationTime
,然后使用{{1}设置远程计算机副本的创建时间所以它与原始文件的创建时间匹配。
答案 1 :(得分:0)
文件创建时间将始终取决于创建它的机器。简单的解决方案是将文件存储在您可以控制的计算机上并保持时间同步。
最重要的是,我可以想出两种解决问题的方法:
获取远程和本地系统日期时间并使用 比较文件时间时两者之间的差异。
如果永远不删除文件,您可以随时查看其“生命周期” 通过计算文件创建和最后一次之间的时间 修改
但是,可以通过手动更改系统日期时间来绕过这两种策略。
答案 2 :(得分:0)
您是否尝试过使用File.GetLastWriteTime
?至少在将文件从笔记本电脑复制到我的文件服务器时,LastWriteTime保持不变。
(看起来有一个已知的conversion bug导致时间和日期信息,有时在从NTFS复制到FAT时有错误,反之亦然。)