如何确定文件最近何时重命名?

Ty *_*ton 7 c# rename fileinfo

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

为了实现这一点,我会检查最新文件是否与旧文件一点一点,如果是,只需重命名旧文件以匹配新文件.

问题是,我没有什么可以告诉我哪个文件最近被重命名.

我会喜欢FileInfo.LastModified等属性,但是对于已重命名的文件.

我已经看过像FileSystemWatcher这样的解决方案了,这不是我想要的.我希望能够随时运行我的同步器,而不必担心某个专用进程跟踪文件夹的状态.

有任何想法吗?

And*_*ass 1

答:至少在 NTFS 上,您可以将备用数据流附加到文件。第一次同步时,您只需将ADS中的 GUID 附加到源文件即可对其进行标记。

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