我用一个简单DirectoryInfo
抢在C驱动器的根目录的所有。 不过,我在管理员运行,我得到的剥夺路径访问错误,下面是我运行的代码。 如何解决的路径访问的问题?
DirectoryInfo Dinfo = new DirectoryInfo(@"C:\");
DirectoryInfo[] directories = Dinfo.GetDirectories("*.*", SearchOption.AllDirectories);
我用一个简单DirectoryInfo
抢在C驱动器的根目录的所有。 不过,我在管理员运行,我得到的剥夺路径访问错误,下面是我运行的代码。 如何解决的路径访问的问题?
DirectoryInfo Dinfo = new DirectoryInfo(@"C:\");
DirectoryInfo[] directories = Dinfo.GetDirectories("*.*", SearchOption.AllDirectories);
在新版本的Windows C:\Document and Settings
是一个结点 ,类型的文件系统的快捷方式。 这不是一个正常的目录,这意味着,它并没有真正的工作作为一个正常的目录。
如果您在输入C:\Document and Settings
在开始- >运行中,您将还可以得到一个拒绝访问的错误,所以它是没有什么特定的程序。
我有点迷茫了这是如何工作不过。 我以为结点会是一个透明的链接到新的位置是c:\users
,但显然不是。
看着重复的问题后,我少困惑。 结点真的链接到新的位置是c:\users
。 然而,对于阅读的结点,以防止任何人用它来阅读的东西的明确拒绝访问控制列表:
C:> CACLS “文件和设置” C:\ Documents和设置所有人:(拒绝)(特殊访问:)
FILE_READ_DATA Everyone:R NT AUTHORITY\SYSTEM:F BUILTIN\Administrators:F
C:>
如果您以管理员身份运行您可能还是会遇到
C:\文件和设置是一个结点和additionnally您不能访问的System Volume Information directory.which被放置在C:\根,你必须捕获任何安全性异常,并跳过它的工作代码。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;
namespace Solution
{
public class Program
{
static void Main(string[] args)
{
DirSearch(@"YOUR PATH");
Console.ReadKey();
}
static void DirSearch(string dir)
{
try
{
foreach (string f in Directory.GetFiles(dir))
Console.WriteLine(f);
foreach (string d in Directory.GetDirectories(dir))
{
Console.WriteLine(d);
DirSearch(d);
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}