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

C#UWP使用System.IO.Directory返回空数组?,c#,win-universal-app,C#,Win Universal App,我正在尝试返回Windows 10 UWP应用程序文件夹中包含的所有文件,代码如下所示: var path = @"C:\Users\Desktop"; var files = System.IO.Directory.GetFiles(path); //get empty arrays 但是,我得到了空字符串数组,我可以知道是什么导致了这个问题吗 可能是因为系统上不存在C:\Users\Desktop,它将位于C:\Users\YOUR\u USERNAME\Desktop下 此外,您的应用

我正在尝试返回Windows 10 UWP应用程序文件夹中包含的所有文件,代码如下所示:

var path = @"C:\Users\Desktop";
var files = System.IO.Directory.GetFiles(path);  //get empty arrays

但是,我得到了空字符串数组,我可以知道是什么导致了这个问题吗

可能是因为系统上不存在
C:\Users\Desktop
,它将位于
C:\Users\YOUR\u USERNAME\Desktop


此外,您的应用程序可能在沙箱中运行,因此所有文件系统访问都将虚拟化到其他位置的私有思洛存储器中—Windows会假装您指定的目录存在,但表示它为空,因为它不希望您在未经事先许可的情况下访问用户的文件。

您不能。对于uwp和应用商店应用,只有应用安装和应用临时文件夹被授予直接访问权限。”直接的意思是。。。不使用Windows.Storge broker进程进行访问。(System.IO为“直接”。)

如果你想像桌面一样访问你的应用程序的“外部”,你需要让用户通过文件/文件夹选择器选择位置。没有用户交互,您无法访问

然而,Windows.Storage broker服务提供了丰富的文件操作方法,以及诸如CommnonQuery等附加功能。 图片、视频文件夹也有一些例外,但基本概念是一样的

以下链接可能对您有所帮助。:)


您打算如何在UWP应用程序中使用这些应用程序?@JesseGlover“Project Centennial”允许将非WinRT应用程序(包括C/C++Win32和.NET应用程序)打包到UWP中。@Dai我们每天都会学到一些新东西。感谢分享这些信息。路径是正确的,如果我在WPF应用程序中使用,我可以获得该文件夹中所有文件路径的字符串数组,那么我如何删除沙盒,以及为什么dint Windows会向我抛出异常。这基本上破坏了与使用System.IO的任何库的兼容性,因为即使应用程序具有任何访问级别,System.IO方法仍会引发UnauthorizedAccessException。