如何检查文件夹的内容是否已更改

Asa*_*saf 7 c# algorithm diff file path

我需要一个程序来检查是否将新文件夹/文件添加到给定的选定文件夹中.我需要这个程序在应用程序启动时运行,因此这个阶段的处理时间很重要.

我想我可以记录当前状态,以前状态的日志,排序和比较它们.

  1. 首先,我需要知道是否还有其他方法.

  2. 第二,如果没有其他方法,找到两个文件路径列表之间的差异的最佳方法是:结构和算法.

旧州:

c:\firstfolder\a.doc
c:\firstfolder\b.doc
c:\firstfolder\secondFolder\a.doc
c:\firstfolder\secondFolder\b.doc
Run Code Online (Sandbox Code Playgroud)

新州:

c:\firstfolder\a.doc
c:\firstfolder\b.doc 
c:\firstfolder\secondFolder\a.doc 
c:\firstfolder\secondFolder\b.doc 
c:\firstfolder\secondFolder\c.doc
Run Code Online (Sandbox Code Playgroud)

我在找c:\firstfolder\secondFolder\c.doc.

Cyb*_*ude 5

您可以使用FileSystemWatcher类,我认为它正是您所追求的。

  • 仅当应用程序运行时才有效。它不会检测程序调用之间发生的更改。 (4认同)

Chr*_*lor 1

由于您的应用程序不是连续运行的,因此使用 FileSystemWatcher您来说似乎不是一个好的选择,但我确实想提及它,因为它可能会激发您的一些想法。

如果您有旧状态的列表并创建新状态的列表,则可以使用类似于此处概述的算法来比较两个列表,以确定自第一个列表创建以来的添加和删除。对所提供的链接的接受答案也有一个很好的解决方案,如果列表未排序,该解决方案效果很好。