我有一个具有以下结构的文件夹
Parent/
Child1/
GrandChild1/
File1.txt
我需要查询Parent文件夹并找出Child1是否已更改。
已更改=已添加/更新/删除新文件。
未更新Child1文件夹DateModified。仅在更改发生时更新了GrandChild1修改日期。我试图避免进入文件级别以确定rootparent是否已更改。因为会有很多文件夹和子文件夹。我只需要知道Child1是否已经改变。
我不想使用FileSystemWatcher,因为我将其作为预定作业运行而不是观看它。
答案 0 :(得分:4)
用户FileSystemWatcher。请记住启用引发事件,因为这是一个常见的错误(watchfolder.EnableRaisingEvents = true;)。
从性能角度来看,FileSystemWatcher可能不是最佳选择。如果这对您来说是个问题,您可以使用计时器执行CRC检查,以检查您感兴趣的文件和文件夹的更改。
基本上,我要做的是generate a CRC32 hash我正在观看的整个文件夹(并将其保存到变量A中),当我决定是时候检查更改时,你只需计算一个新的CRC32相同文件夹的哈希值(变量B)。然后,您将A与B进行比较,如果它们不匹配,则会发生变化。真的不那么难。
参考:
答案 1 :(得分:1)
您是否尝试过文件系统观察程序? 您可以监视本地驱动器以查找给定路径的更改,然后在必要时忽略或处理它们更改的事实。
答案 2 :(得分:1)
您可以使用FileSystemWatcher类。
或者,如果您希望安排任务运行,例如每周,您可能需要查看:http://taskscheduler.codeplex.com/和http://www.emoreau.com/Entries/Articles/2004/08/Interfacing-the-Windows-Task-Scheduler.aspx
的链接