gpt4 book ai didi

c# - 递归获取文件 : skip files/directories that cannot be read?

转载 作者:太空狗 更新时间:2023-10-29 21:45:55 24 4
gpt4 key购买 nike

我想获取数组中目录中的所有文件(包括子文件夹中的文件)

string[] filePaths = Directory.GetFiles(@"c:\",SearchOption.AllDirectories);     

问题是:如果抛出异常,整个命令都会停止。有没有更好的方法来做到这一点,以便如果无法访问文件夹,它会跳过它?

最佳答案

然后您可能需要自己输入更多内容,然后编写一个像这样的目录遍历器:

    public static string[] FindAllFiles(string rootDir) {
var pathsToSearch = new Queue<string>();
var foundFiles = new List<string>();

pathsToSearch.Enqueue(rootDir);

while (pathsToSearch.Count > 0) {
var dir = pathsToSearch.Dequeue();

try {
var files = Directory.GetFiles(dir);
foreach (var file in Directory.GetFiles(dir)) {
foundFiles.Add(file);
}

foreach (var subDir in Directory.GetDirectories(dir)) {
pathsToSearch.Enqueue(subDir);
}

} catch (Exception /* TODO: catch correct exception */) {
// Swallow. Gulp!
}
}

return foundFiles.ToArray();
}

关于c# - 递归获取文件 : skip files/directories that cannot be read?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com