问题描述
我试图枚举一个非常大的共享文件夹(在 DFS 根目录后面)的所有子目录。 此代码工作正常,当它尝试访问未经授权的子目录时,枚举继续:
List<string> dirs = new List<string>(Directory.EnumerateDirectories("\\mydfsshare\myrootfolder","*",new Enumerationoptions
{
IgnoreInaccessible = true,RecurseSubdirectories = true
}));
但是对于特定文件夹,它给了我这个异常并停止枚举:
System.IO.IOException: Erreur réseau inattendue. : '\\mydfsshare\myrootfolder\Certification'
at System.IO.Enumeration.FileSystemEnumerator`1.FindNextEntry()
at System.IO.Enumeration.FileSystemEnumerator`1.DirectoryFinished()
at System.IO.Enumeration.FileSystemEnumerator`1.FindNextEntry()
at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at extractAcl.Program.Main(String[] args) in Program.cs:line 58
我不被允许阅读这个文件夹,但和许多其他人一样。 IgnoreInaccessible 属性适用于许多其他未经授权的文件夹,我不明白为什么这个特定文件夹会发生异常。 如果我尝试从笔记本电脑浏览它,我会收到此消息:
如果我尝试直接在文件服务器上浏览它,我会收到此消息:
我想绕过这个文件夹并继续枚举
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)