使用.NET定期查找目录中的已更改文件

Chr*_*rre 2 .net c# .net-4.0

我正在尝试找到使用C#和.NET在目录中查找新文件和修改过的文件的最可靠方法.我不是在寻找实时解决方案,我想在给定时间检查更改.可能是每5分钟或每小时等.

我们在FileInfo对象上有CreationTime和LastWriteTime,这似乎足以获取新的和修改过的文件.但是,如果重命名文件,则不会更改任何可用日期,如果只查看CreationTime和LastWriteTime,则会丢失文件.

目前我正在维护目录中文件的"快照",包括上次检查更改的时间.这使我能够将目录中的所有文件与快照中的文件进行比较,如果快照缺少文件,则为新文件或重命名文件.

这是唯一的方法吗?我错过了什么.我不打算使用FileSystemWatcher,因为它似乎非常"错误"并且需要一直运行.

任何建议都非常欢迎.

圣诞节快乐!

ken*_*n2k 6

使用FileSystemWatcher类,这是好方法.也许你可以更加具体

因为它看起来很漂亮"越野车"

编辑:FileSystemWatcher支持重命名事件.

  • 基督徒,FileSystemWatcher并没有一直运行.它正在等待事件.启动FileSystemWatcher时,它会要求Windows操作系统通知指定文件或目录上的文件事件.发生文件操作时,Windows会检查您指定的文件模式,如果匹配,则会引发FileSystemWatcher事件. (4认同)
  • OP特别提到他不需要实时并且不想使用FileSystemWatcher类.但是,如果你认为他应该那么你需要解释**为什么**它会解决问题. (2认同)
  • 这是**正确**的方法。关于它是 *buggy* 的评论可能源于对课程的缺乏经验。 (2认同)