如何确定目录/文件夹是否已更改

Arc*_*ian 4 c# directory subdirectory

我有一个具有以下结构的文件夹

Parent/
    Child1/
        GrandChild1/
             File1.txt
Run Code Online (Sandbox Code Playgroud)

我需要查询父文件夹并找出 Child1 是否已更改。

已更改 = 添加/更新/删除了新文件。

Child1 文件夹 DateModified 未更新。发生更改时,仅更新 GrandChild1 修改日期。我试图避免进入文件级别来确定 rootparent 是否已更改。因为会有很多文件夹和子文件夹。我只需要知道 Child1 是否已更改。

我不想使用 FileSystemWatcher,因为我将此作为计划作业运行,而不是实时观看。

Mar*_*cus 6

用户文件系统观察者。请记住启用引发事件,因为这是一个常见错误(watchfolder.EnableRaisingEvents = true;)。

从性能角度来看,FileSystemWatcher 可能被证明不是最佳的。如果这对您来说是个问题,您可以使用计时器实施CRC检查,以检查您感兴趣的文件和文件夹的更改。

本质上,我要做的是为我正在观看的整个文件夹生成一个 CRC32 哈希(并将其保存到变量 A 中),当我决定是时候检查更改时,您只需计算一个新的 CRC32 哈希即可文件夹(进入变量 B)。然后将 A 与 B 进行比较,如果它们不匹配,则说明发生了一些变化。真的没有那么难。

参考: