获取上次修改的文件而不枚举所有文件

时间:2011-01-22 00:27:59

标签: file

在c#中,给定一个文件夹路径,有没有办法获取最后修改的文件而不获取所有文件? 我需要快速查找在一定时间后更新的文件夹,如果上次修改的文件在时间之前,我想完全跳过该文件夹。 我注意到文件夹的上次修改时间没有更新,当其中一个文件更新时,这种方法不起作用。

2 个答案:

答案 0 :(得分:0)

试试这个。

DirectoryInfo di = new DirectoryInfo("strPath");
DateTime dt = di.LastWriteTime;

然后你应该使用

Directory.EnumerateFiles(strPath, "*.*", SearchOption.TopDirectoryOnly);

然后循环上面的集合并获取每个文件的FileInfo()。

我没有看到如何获得文件的修改日期,无法在该文件上获取对FileInfo()的引用。

据我所知,我认为FileInfo不会得到这个文件。

答案 1 :(得分:0)

不,这就是为什么Windows带有索引来加速搜索的原因。 NTFS文件系统的设计并未考虑到快速搜索。

在任何情况下,您都可以监控文件更改,这并不难。如果可以允许您的程序在后台运行并监视更改,那么这将起作用。如果您需要过去的历史记录,您只能进行一次初始扫描,然后从他们的构建中构建您的层次结构。只要你的程序一直在运行,那么它应该有一个当前的快照而不必进行慢速扫描。

您还可以使用“窗口搜索”本身来查找文件。如果索引可用,那么它可能与您获得的速度一样快。