c# - 访问路径被拒绝但文件没有限制

标签 c# windows-10

我是 C# 的新手,一般来说不是编程专家,但我似乎无法弄清楚是什么导致了这个问题。我让用户选择一个 XML 文件,然后我想阅读它的内容。这是在 C# 中制作一个通用的 Windows 10 应用程序

这是我遇到的错误:

An exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.ni.dll but was not handled in user code

Additional information: Access to the path 'C:\temp\file.xml' is denied.

public async static void pickFile()
        {
            FileOpenPicker openPicker = new FileOpenPicker();
            openPicker.ViewMode = PickerViewMode.List;
            openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            openPicker.FileTypeFilter.Add(".xml");

            StorageFile file = await openPicker.PickSingleFileAsync();

            if (file != null)
            {
                var t = Task.Run(() => { reset(file.Path); });
            }
       }

然后

private static void reset(string path)
        {
            String LocationDatafilename = path;
            XmlReaderSettings settings = new XmlReaderSettings();
            XmlReader reader = XmlReader.Create(LocationDatafilename, settings);
            XmlDocument LocationDataXml = new XmlDocument();
            LocationDataXml.Load(Globals.reader);
        }

当我进入 XmlReader.Create 时,我收到了错误。当我寻找原因时,我唯一找到的是权限问题,但事实并非如此。任何帮助,将不胜感激。谢谢。

最佳答案

您需要直接对StorageFile 进行操作,因为您的应用没有直接读取用户文件的权限。您可以使用 WinRT XML API,也可以继续使用 .NET API 并使用基于流的 Create 函数,而不是采用文件名的函数。

关于c# - 访问路径被拒绝但文件没有限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32387412/

相关文章:

c# - "unrecognized expression node array index linq"LINQ to SQL 中的异常

python - Anaconda 3安装不成功

visual-studio-2017 - 创建虚拟目录失败,错误 : cannot write configuration file applicationhost. 配置

c# - 如何在 Linq 中使用 GroupBy 方法后选择新模型列表?

c# - 命名参数和可选参数适用于 .NET 2.0

c# - Automapper 无法转换为类型

xaml - 使用 MergedDictionaries (UWP) 拆分 generic.xaml 文件的正确语法是什么

c# - 如何添加对 AWS SQS 队列的权限?

svn - 在 Windows 10 上的 TortoiseSVN 中禁用德语拼写检查器

winapi - 如何使用 "Project Centennial converter"从Win32应用程序转换为UWP的Win32应用程序访问Windows.Services.Store命名空间,以启用应用程序内购买?