string[] files = Directory.GetFiles(tb_dir.Text, tb_filter.Text, SearchOption.AllDirectories);
我在搜索一个目录和所有子目录以查找一些文件。我不断地遇到一个当前代码的错误,当它看到一些它不能进入的东西时,它就会中断。
在这个无关紧要的应用程序中,我宁愿继续。是否有任何方法可以绕过此代码,避免每次都将其转储?
谢谢
撞车893
你可以这样做:
List<string> GetFiles(string topDirectory, string filter) { List<string> list = new List<string>(); list.AddRange(Directory.GetFiles(topDirectory, filter)); foreach (string directory in Directory.GetDirectories(topDirectory)) { list.AddRange(GetFiles(directory)); } return list; }
并用以下方式称呼它:
List<string> files = GetFiles(tb_dir.Text, tb_filter.Text);
当然,您可以将文件列表转换为数组。
您必须添加try catch块来处理unauthorizedAccessException。