我正在尝试返回Windows 10的UWP应用程序文件夹中包含的所有文件,代码如下所示:
var path = @"C:UsersDesktop";
var files = System.IO.Directory.GetFiles(path); //get empty arrays
但是,我得到空字符串数组,我可以知道是什么导致了这个问题吗?
你不能。对于 uwp 和应用商店应用,仅授予应用安装和应用临时文件夹以供直接访问。 "直接"意味着...在没有 Windows.Storge 代理进程的情况下访问。(System.IO 是"直接的"。
如果你想访问你的应用的"外部"——就像桌面一样,你需要让用户通过文件/文件夹选择器来选择位置。没有用户交互,您将无法访问。
但是,Windows.Storage 代理服务提供了丰富的文件操作方法,以及其他功能,如 CommnonQuery 功能。图片,视频文件夹有一些例外,但基本概念是相同的。
以下链接可能会对您有所帮助。 :)
文件访问权限
可能是因为系统上不存在C:UsersDesktop
- 它会在C:UsersYOUR_USERNAMEDesktop
.
此外,您的应用程序可能在沙箱中运行,因此所有文件系统访问都将虚拟化到其他地方的私有筒仓 - Windows 会假装您指定的目录存在,但说它是空的,因为它不希望您在未经事先许可的情况下访问用户的文件。