我正在使用 C# 4.5,并且正在尝试扫描文件共享中的所有文件夹。我想跳过我无法访问的任何文件夹并继续。我所做的是递归地执行它,这会引发 stackoverflow。我明白为什么会这样。所以我的问题是:有什么解决方法吗?
既然我们不能使用递归搜索,你将如何实现这一点?我可以使用任何第三方库来简化此操作吗?GetFolder
函数只是提取一些信息并返回一个自定义类,这很好用。
public void GetFoldersFromFS(string filePath)
{
if (filePath == null)
{
return;
}
Directory.SetCurrentDirectory(filePath);
try
{
foreach (var directory in Directory.EnumerateDirectories(Directory.GetCurrentDirectory()))
{
Resources.Add(GetFolder(new DirectoryInfo(directory)));
GetFoldersFromFS(directory);
}
}
catch (UnauthorizedAccessException e)
{
Log.Warn(e.Message);
}
catch (PathTooLongException e)
{
Log.Warn(e.Message);
}
}