可能重复:
UnauthorizedAccessException cannot resolve Directory.GetFiles failure
这是我用来搜索文件的功能:
public string SearchFor(string fileExtension, DirectoryInfo at)
{
string error = null;
try
{
foreach (DirectoryInfo subDir in at.GetDirectories())
{
SearchFor(fileExtension, subDir);
foreach (FileInfo f in at.GetFiles())
{
// test f.name for a match with fileExtension
// if it matches...
// yield return f.name;
if (f.Name == fileExtension)
{
return f.Name;
}
else
{
error = f.Name;
}
}
}
}
catch (UnauthorizedAccessException) { }
return error;
}
我知道在调用函数时要为路径添加什么,但我应该为文件添加什么?如何使用/调用该功能?我不知道该放什么文件。
答案 0 :(得分:1)
一种选择是以管理员身份运行程序。 (右键单击并以管理员身份运行)
另一种选择是自定义您自己的目录搜索代码,例如:
public IEnumerator SearchFor(string fileExtension, DirectoryInfo at) {
try {
foreach (DirectoryInfo subDir in at.GetDirectories()) {
SearchFor(fileExtension, subDir);
foreach (FileInfo f in at.GetFiles()) {
// test f.name for a match with fileExtension
// if it matches...
// yield return f.name;
}
}
} catch (UnauthroizedAccessException) { }
}
答案 1 :(得分:0)
如果运行该功能的Windows帐户无权将目录更改为文件夹,则在尝试从代码访问时会出现该异常。您可以使用try / catch优雅地处理它并继续搜索,或者您可以尝试在有权下载到该目录的帐户下运行。