我有一个具有以下结构的文件夹
Parent/
Child1/
GrandChild1/
File1.txt我需要查询父文件夹,看看Child1是否发生了变化。
Changed =添加/更新/删除了新文件。
Child1文件夹DateModified未更新。发生更改时,仅更新修改的GrandChild1日期。我正在尝试避免进入文件级来确定rootparent是否已更改。因为将有许多文件夹和子文件夹。我只想知道Child1有没有变。
我不想使用FileSystemWatcher,因为我将其作为计划作业运行,而不是观看实况。
发布于 2012-10-11 22:05:47
用户FileSystemWatcher。记住启用引发事件,因为这是一个常见的错误(watchfolder.EnableRaisingEvents = true;)。
从性能的角度来看,FileSystemWatcher可能不是最优的。如果这对您来说是一个问题,您可以实现一个带有计时器的CRC检查,以检查您感兴趣的文件和文件夹的更改。
基本上,我要做的是对我正在监视的整个文件夹执行generate a CRC32 hash (并将其保存到变量A中),当我决定是时候检查更改时,您只需为同一文件夹计算一个新的CRC32散列(到变量B中)。然后将A和B进行比较,如果它们不匹配,则说明发生了变化。真的没那么难。
参考资料:
发布于 2012-10-11 22:06:44
你有没有试过文件系统观察器?您可以监视来自给定路径的本地驱动器的更改,然后在必要时忽略或处理更改的事实。
发布于 2012-10-11 22:08:24
为此,您可以使用FileSystemWatcher类。
或者,如果您更愿意安排一个任务来运行,例如,您可能想要查看一下:http://taskscheduler.codeplex.com/和http://www.emoreau.com/Entries/Articles/2004/08/Interfacing-the-Windows-Task-Scheduler.aspx
这是到Windows Task Schedular API的链接
https://stackoverflow.com/questions/12841427
复制相似问题