c# - 如何确定文件最近一次重命名的时间?

标签 c# rename fileinfo

我有一个程序可以比较两个文件夹中的文件。我想检测文件是否已重命名,确定最新文件(最近重命名),并更新旧文件上的名称以匹配。

为此,我会检查最新文件是否与旧文件完全相同,如果是,只需重命名旧文件以匹配新文件即可。

问题是,我没有什么可以告诉我最近重命名的文件。

我喜欢像 FileInfo.LastModified 这样的属性,但对于已重命名的文件。

我已经研究过 FileSystemWatcher 等解决方案,但这并不是我真正想要的。我希望能够随时运行我的同步器,而不必担心某些专用进程跟踪文件夹的状态。

有什么想法吗?

最佳答案

答:至少在NTFS上,你可以附上 alternate data streams to a file 。 在第一次同步时,您只需将 ADS 中的 GUID 附加到源文件以标记它们。

B:如果您没有源的写入权限,请将同步文件的哈希值存储在目标存储库中。当源更改时,您只需对源文件进行哈希处理,并且仅在哈希值发生冲突时才逐位进行比较。根据哈希函数的质量和速度,这将为您节省大量时间。

关于c# - 如何确定文件最近一次重命名的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2314845/

相关文章:

c# - 是否有接受 Excel 文件作为输入的代码生成工具?

在 Windows 中重命名文件时出现 Python 错误

grails - 在Netbeans中重命名Grails项目

python - 如何使用 Python 编辑 .xlsx 文件的核心属性?

c# - 全局样式不起作用

c# - Feed RDLC (Local) report 来自 List (Entity FrameWork) 的报告

c# - int 和 string 之间的唯一索引

powershell - 如何使用 Powershell 重命名文件夹以将年份放在首位

.net - IO.FileInfo 奇怪的异常 "Illegal characters in path"当有任何非法字符

c# - FileInfo 从列表中删除文件