Csharp/C#教程:C#访问路径’C: Documents and Settings ’被拒绝分享


C#访问路径’C: Documents and Settings ’被拒绝

我正在使用一个简单的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 。 但是,有一个明确的拒绝acl用于读取连接点以防止任何人使用它来读取内容:

C:> cacls“Documents and Settings”C: Documents and Settings Everyone ? DENY)(特殊访问:)

  FILE_READ_DATA Everyone:R NT AUTHORITYSYSTEM:F BUILTINAdministrators:F 

C:>

如果您以管理员身份运行,您可能仍会遇到

C: Document and Settings是一个交接点,另外您无法访问系统卷信息目录。它位于C: root上,您必须捕获任何安全exception并跳过它来处理您的代码。

上述就是C#学习教程:C#访问路径’C: Documents and Settings ’被拒绝分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 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); } } } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/959477.html

(0)
上一篇 2021年11月23日
下一篇 2021年11月23日

精彩推荐