【问题标题】:Access Denied error when using XmlReader.Create使用 XmlReader.Create 时访问被拒绝错误
【发布时间】:2015-08-28 19:00:57
【问题描述】:

我无法弄清楚这个异常。也许我用错了这个xmlReader

“System.UnauthorizedAccessException”发生在 mscorlib.dll 中。

附加信息:访问路径 'c:\example\extract' 是 拒绝。

我已经检查了 文件夹/文件 的权限,并已将完整的写入权限授予我电脑上的用户/管理员。 有什么建议吗?

 XmlReader reader = XmlReader.Create("c:\\example\\extract");
 XElement el = XElement.Load(reader);
 reader.Close();

 var items = el.Elements("values").Elements("values").DescendantNodes();

 items = from item in el.Elements("values").Elements("values").Descendants()
 where item.Attribute("name").Value == "name"
 select item.FirstNode;

 foreach(XNode node in items) {
     Console.WriteLine(node.ToString());
 }

【问题讨论】:

  • 那么您是否在管理员模式下运行您的应用程序?您也可以通过像“\\extract.xml”这样的开头来使用 bin 目录的相对路径。为什么要专门c盘?
  • XmlReader 用于读取 XML 文件。看起来您正在指定目录。 “解压”是文件还是目录?
  • extract 是目录吗? XmlReader.Create 需要包含文件名的完整路径,例如c:\\example\\extract\\output.xml
  • @JeffPrince 它是一个目录.. 我正在尝试阅读,但我认为我可能使用 XmlReader 错误
  • 字符串“c:\\example\\extract”中没有文件被引用,我会使用Path.Combine(drive, folder, folder, file),以便处理目录结构并获取文件。设置一个断点并确保您真正进入并读取文件

标签: c# .net xmlreader


【解决方案1】:

https://stackoverflow.com/a/27555923/3922214

UnauthorizedAccessException 意味着以下三种情况之一:

-调用者没有所需的权限。

-path 是一个目录。

-path 指定一个只读文件。

您可以尝试一些方法。确保没有与您尝试创建的文件同名的目录。另外,尝试以管理员权限运行 VS。

【讨论】:

    【解决方案2】:

    我使用了错误的路径并且没有引用路径中的文件。建议的所有输入都有效。

    【讨论】:

      猜你喜欢
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2012-12-21
      • 2010-12-23
      相关资源
      最近更新 更多