我尝试从网络位置读取文件。但我一直收到UnAuthorizedAccessException。
我通过StorageFolder.GetFolderFromPathAsync选择StorageFolder,但列出文件会引发异常。
当我通过FolderPicker选择相同的文件夹时,它可以正常工作。
所以我尝试使用此代码查明问题:
FolderPicker picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
StorageFolder pickedFolder = await picker.PickSingleFolderAsync();
if (pickedFolder != null)
{
var pickedFolderList = await pickedFolder.GetFilesAsync();
var count = pickedFolderList.Count;
if (count > 0)
{
StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(pickedFolder.Path);
var pathFolderList = await folder.GetFilesAsync(); //Exception
if (pathFolderList.Count == count)
{
ProcessFolder(folder);
}
}
}
在设置变量pathFolderList的标记行处抛出异常。虽然我已经在上面几行列出了相同的文件夹。
我已经设置了这些功能:
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="privateNetworkClientServer"/>
<uap:Capability Name="enterpriseAuthentication"/>
<uap:Capability Name="removableStorage"/>
</Capabilities>
我错过了什么?
答案 0 :(得分:3)
您的应用无权访问该路径。访问文件的权限是通过选择器返回的StorageFolder处理的。
而不是尝试从pickedFolder
创建新的StorageFolderStorageFolder folder = await StorageFolder.GetFolderFromPathAsync(pickedFolder.Path);
只需使用pickedFolder本身:
var pathFolderList = await pickedFolder.GetFilesAsync(); //Exception
中详细介绍了这一点