C# 为什么文档和设置文件夹出现拒绝访问错误?
我正在写一个程序,可以得到所有的目录和子目录。我正在使用以下代码:C# 为什么文档和设置文件夹出现拒绝访问错误?,c#,.net,windows-7,file-io,directory,C#,.net,Windows 7,File Io,Directory,我正在写一个程序,可以得到所有的目录和子目录。我正在使用以下代码: DriveInfo[] drives = DriveInfo.GetDrives(); foreach (DriveInfo drive in drives) { string[] directories = Directory.GetDirectories(drive.Name, "*", SearchOption.AllDirectories); } 但我收到一个异常,声明“对路径“C:\Documents and
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
string[] directories = Directory.GetDirectories(drive.Name, "*", SearchOption.AllDirectories);
}
但我收到一个异常,声明“对路径“C:\Documents and Settings”的访问被拒绝。”
我正在使用Windows 7,但在资源管理器中没有看到C:\Documents and Settings\文件夹。我启用了“显示隐藏的文件和文件夹”,甚至尝试直接键入路径,但它会出现以下错误:“C:\Documents and Settings不可访问。访问被拒绝。”
为什么
Directory.GetDirectories()
要拉一个似乎不存在的目录?这个目录就是所谓的a,应该指向c:\users
从MSDN文档中:
这些连接点可按如下方式识别:
它们设置了文件属性重分析点、文件属性隐藏点和文件属性系统文件属性
他们还将访问控制列表(ACL)设置为拒绝所有人的读取权限
调用特定路径的应用程序如果具有所需的权限,则可以遍历这些连接点。但是,尝试枚举连接点的内容将导致失败。我不知道如何解决,但我可以告诉您WinXP使用了该路径。为访问该文件夹而编写的旧程序与Win7不兼容,因此Microsoft会将其重定向到用户文件夹
如果我真的开始->运行
c:\Documents and Settings
我也会得到访问被拒绝
错误。所以有些事情是存在的 在寻找答案一段时间后,我决定自己编写代码
我在这里分享的是基本思想,而不是完整的代码——把重要的部分用在代码中实现
为我工作
public void directoryCrawl(string startFolder)
{
try
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);
/* here you can add "dir" to some kind of list of your choice. */
foreach (System.IO.DirectoryInfo directory in dir.GetDirectories())
{
try
{
directoryCrawl(directory.FullName);
}
catch
{
Console.Writeline("Access denied to: \"" + directory.FullName + "\".");
}
}
}
catch
{
if (!String.IsNullOrEmpty(startFolder))
{
Console.Writeline("Access denied to: \"" + startFolder + "\".");
}
}
return;
}
这个答案似乎不正确,;