相关疑难解决方法(0)

当Directory.GetFiles()被拒绝访问时忽略文件夹/文件

我试图显示在所选目录(以及可选的任何子目录)中找到的所有文件的列表.我遇到的问题是,当GetFiles()方法遇到无法访问的文件夹时,它会抛出异常并且进程停止.

如何忽略此异常(并忽略受保护的文件夹/文件)并继续将可访问文件添加到列表中?

try
{
    if (cbSubFolders.Checked == false)
    {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
        foreach (string fileName in files)
            ProcessFile(fileName);
    }
    else
    {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
        foreach (string fileName in files)
            ProcessFile(fileName);
    }
    lblNumberOfFilesDisplay.Enabled = true;
}
catch (UnauthorizedAccessException) { }
finally {}
Run Code Online (Sandbox Code Playgroud)

c# getfiles

71
推荐指数
5
解决办法
8万
查看次数

UnauthorizedAccessException无法解析Directory.GetFiles失败

Directory.GetFiles方法在第一次遇到没有访问权限的文件夹时失败.

该方法抛出一个UnauthorizedAccessException(可以捕获),但到此时,该方法已经失败/终止.

我正在使用的代码如下:

try
{
    // looks in stated directory and returns the path of all files found                
    getFiles = Directory.GetFiles(
        @directoryToSearch, 
        filetype, 
        SearchOption.AllDirectories);             
}
catch (UnauthorizedAccessException) 
{ 
}
Run Code Online (Sandbox Code Playgroud)

据我所知,没有办法事先检查某个文件夹是否具有定义的访问权限.

在我的示例中,我正在通过网络搜索磁盘,当我遇到仅限root访问权限的文件夹时,我的程序失败了.

c# exception-handling getfiles unauthorized

22
推荐指数
3
解决办法
3万
查看次数

标签 统计

c# ×2

getfiles ×2

exception-handling ×1

unauthorized ×1