0

我有一个庞大的远程共享文件路径列表,我需要检查它们是否存在。示例输入:

\server\folder1\file1
\server\folder1\file2
\server\folder2\file3
等。

我们目前只是对每个文件执行 File.Exists(它基本上使用 FindFirstFile WinAPI),但速度很慢。有没有更有效的方法呢?有没有办法以某种方式并行化?

4

1 回答 1

1

使用 I/O 操作通常既慢又昂贵。
我建议一起使用不同的方法:

程序初始化时获取文件列表一次,并将其存储在数据库中。

使用 aFileSystemWatcher监视路径中文件的创建(如果您有不同的父目录或不同的远程计算机,您可能需要为每个目录使用 FileSystemWatcher),然后在每个创建、删除和重命名事件的相关文件上更新数据库.

那么你所要做的就是获取存在的文件是一个简单的 sql 查询,与在大列表上迭代和测试相比,这将是闪电般的速度File.Exist

于 2015-05-27T07:49:19.600 回答