收听文件系统

时间:2012-12-24 15:29:25

标签: c#

我想编写应用程序如何处理文件并监听目录根目录,并将仅在2天内创建的文件添加到我的应用程序中。

  1. FileSystemWatcher类只能侦听一个目录,或者可以使用我的根文件夹下的所有子目录进行操作吗?

  2. 只查找2天内创建的文件的最佳选项是什么? (FileInfo.CreationTime?)

2 个答案:

答案 0 :(得分:2)

根据MSDN

  

使用FileSystemWatcher监视指定目录中的更改。您可以查看指定目录的文件和子目录的更改。

因此,要回答您的第一个问题,是的,它可以对您的根文件夹的所有子目录执行此操作。

答案 1 :(得分:2)

对于第二个问题,您可以遍历目录中的文件并检查其创建日期。

foreach (FileInfo fi in directory.GetFiles())
{
    if (fi.CreationTime.Date <= DateTime.Today.AddDays(-2)) 
    {
        //process file
    }
}

或者,您可以使用LINQ

var recentFiles = directory.GetFiles().Where(x =>
                                x.CreationTime.Date <= DateTime.Today.AddDays(-2))
                                .Select(x => x.Name)
                                .ToList();

您需要对性能差异进行基准测试,但对于少量文件,我怀疑是否存在显着差异。