如何找出已重命名的文件?

时间:2014-03-19 05:37:44

标签: c# file-io polling

如何检测文件是否已重命名?

我使用的是Poll方法,而不是系统文件观察器方法。

目前,我可以通过LastWriteTime属性(文件资源管理器中的DateModifed)检测System.IO.File对象的更改。但是,重命名文件时,我看不到任何属性,如日期属性更改日期。

如何使用poll方法检测文件重命名?

有趣的是,文件所在的目录会在重命名文件时更改日期。

1 个答案:

答案 0 :(得分:1)

我必须在一个阶段使用一小组文件执行此操作,在这种情况下,我存储了每个文件的文件路径,以及每次轮询时创建日期和文件大小。

然后,在每次后续调查中,我都能够检测到现在“丢失”的文件。从我上次调查开始。然后,我会交叉检查创建时间和文件大小以检测某些较新的文件是否与某些丢失的文件匹配。如果我得到一个匹配,我会假设重命名。

但请注意,它可能不安全/ 100%准确;你可能有多个文件具有相同的创建日期和文件大小等。在我的情况下,它是使用生成的照片,我也能够检查exif数据作为最终验证。根据您的具体情况,您可能需要验证其他数据。