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