我想知道如何测试我是否可以访问字符串路径。这是我使用的代码:
using System;
using System.IO;
namescpace prog1
{
class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Admin";
DirectoryInfo dir = new DirectoryInfo(path);
foreach (FileInfo fil in dir.GetFiles())
{
//At dir.GetFiles, I get an error saying
//access to the string path is denied.
Console.WriteLine(fil.Name);
}
Console.ReadLine();
}
}
}
我想测试访问是否被拒绝(到字符串路径) 然后执行GetFiles以及所有这些。
我已经找到了这个:how can you easily check if access is denied for a file in .NET?
任何帮助?
答案 0 :(得分:5)
最简单(通常最安全)的选项是执行您现在正在执行的操作,但将代码包装在适当的异常处理中。
然后,您可以明确地从GetFiles
(可能是SecurityException
DirectoryInfo
从{{1}}构造函数中捕获UnauthorizedAccessException,具体取决于路径),并将处理逻辑放在那里
答案 1 :(得分:2)
可以这样做:
static void Main(string[] args)
{
string path = @"C:\Users\Admin";
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] files = null;
try {
files = dir.GetFiles();
}
catch (UnauthorizedAccessException ex) {
// do something and return
return;
}
//else continue
foreach (FileInfo fil in files )
{
//At dir.GetFiles, I get an error saying
//access to the string path is denied.
Console.WriteLine(fil.Name);
}
Console.ReadLine();
}