C#/ VS的新手,尝试获取文件列表,觉得这个答案很简单,但却找不到。
基本上,想要获取文件列表,尝试了各种方法,但为简单起见,为什么
var f = Directory.GetFiles(@"C:\");
返回
System.UnauthorizedAccessException:'访问路径' C:\'是 。否认'
尝试将VS作为管理员运行,尝试使用子文件夹,尝试使用具有完全控制权限的Everyone的子文件夹。相同的结果。
答案 0 :(得分:1)
要从您的UWP应用访问任意文件夹,用户首先需要通过FolderPicker对话框提供同意:
FolderPicker picker = new FolderPicker();
picker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
picker.FileTypeFilter.Add("*");
StorageFolder folder = await picker.PickSingleFolderAsync();
var files = await folder.GetFilesAsync();
https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.Pickers.FolderPicker
答案 1 :(得分:0)
System.UnauthorizedAccessException:'拒绝访问路径'C:\'。'
Rob已经表示,Windows应用商店应用运行sandboxed
并且对blog中的文件系统的访问权限非常有限。只能通过broker process
访问其他位置。此代理进程使用用户的完全权限运行。
因此,您可以使用完全权限FolderPicker
访问Stefan Wick提到的文件夹。
默认情况下,应用可以访问某些文件系统位置。应用还可以通过声明功能来访问其他位置。
所有应用都可以访问某些位置。例如InstalledLocation
LocalFolder
。
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
除了默认位置,应用还可以通过在应用清单中声明功能来访问其他文件和文件夹。例如Pictures
Music
库。
<Capabilities><uap:Capability Name="musicLibrary"/></Capabilities>
<Capabilities><uap:Capability Name="picturesLibrary"/></Capabilities>
有关详情,请参阅File access permissions。 Skip the path: stick to the StorageFile将帮助您深入了解uwp文件访问。