c# - 创建新目录返回错误:“System.UnauthorizedAccessException:'访问路径'C:\ Users'被拒绝。'
问题描述
我正在制作一个包含文件的小UWP
程序config.xml
。我希望将其保存在“我的游戏\我的应用程序\”文件夹中。
这是我使用的代码:
string folder = "C:\\Users\\admin\\Documents\\My Games\\MyAppFolder";
Directory.CreateDirectory(folder);
运行程序时,第二行给出了这个错误:
“System.UnauthorizedAccessException:'访问路径'C:\ Users'被拒绝。'”。
我试过了
string folder = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\My Games\\MyAppFolder"
和
string folder = "C:\\Users\\admin\\Documents\\MyAppFolder";
并遇到了同样的问题。
但是,我尝试了一个C#
winforms
没有任何问题的应用程序:在那里,相同的代码完美运行,创建了新文件夹。
感谢帮助!
解决方案
创建新目录返回错误:“System.UnauthorizedAccessException:'访问路径'C:\ Users'被拒绝。'
UWP 运行在沙箱上,不能使用System.IO
api( Directory.CreateDirectory
) 直接访问文件夹路径,需要使用Windows Storage
api 访问特定文件夹。要访问此类路径C:\\Users\\admin\\Documents\\MyAppFolder
,您还可以添加broadFileSystemAccess
功能并在文件设置中打开此权限。更多请参考此案例回复
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp uap5 rescap">
...
<Capabilities>
<rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>
推荐阅读
- python - 使用 Python 使 html 中的所有粗体文本自动变大(美丽的汤)
- php - Typo3 - 如何在加入集合中添加自定义字段?
- javascript - Javascript - 通过 console.log 调试
- android - Android Zipalign 有什么用
- java - Spring Boot 2 Oauth 无限重定向
- javascript - 如何在worker中将几何转换为数组缓冲区并将其传递给主线程
- c# - 部署在 Ubuntu 18.04 上的 .net-core 2.1 控制台应用程序的行为与 Windows 10 不同(可能是线程问题)
- entity-framework - 清理旧 Entity Framework Core 迁移的推荐方法
- java - 如何解压缩 c# 中的流,就像这个 java 代码段一样?
- jquery-ui - 将小部件添加到现有的 jQuery-UI 库