0

我有以下代码:

foreach (string file in Directory.EnumerateFiles(@"mynetwork\dirall", "*.*", SearchOption.AllDirectories))
{
    list.Add(file);
}

目录有大约 200 万个文件。我想从中构建索引,我将从填充的列表对象写入文件。

执行大约需要 45 分钟。我可以划分这个过程并行执行吗?
任何的想法?穿线什么的?

4

1 回答 1

0

我通过使用从 Stackoverflow 获得的以下代码使其工作!

    // Takes same patterns, and executes in parallel
    public static IEnumerable<string> GetDirs(string path, string searchPattern, SearchOption searchOption = SearchOption.TopDirectoryOnly)
    {
        return Directory.EnumerateDirectories(path, searchPattern, searchOption);
    }

    // Takes same patterns, and executes in parallel
    public static IEnumerable<string> GetFiles(string[] paths,string searchPattern, SearchOption searchOption = SearchOption.AllDirectories)
    {
        return paths.AsParallel().SelectMany(path => Directory.EnumerateFiles(path, searchPattern, searchOption));
    }
于 2012-11-30T09:05:25.883 回答