使用 System.IO.Directory 的 C# UWP 返回空数组



我正在尝试返回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 会假装您指定的目录存在,但说它是空的,因为它不希望您在未经事先许可的情况下访问用户的文件。

最新更新