gpt4 book ai didi

c# - 通过 FilePicker 访问时 StorageFolder.GetFolderFromPathAsync 出现 UnAuthorizedAccessException

转载 作者:太空狗 更新时间:2023-10-30 01:34:33 27 4
gpt4 key购买 nike

我尝试从网络位置读取文件。但我不断收到 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>

我错过了什么?

最佳答案

您的应用无权访问该路径。访问文件的权限通过选择器返回的 StorageFolder 处理。

尝试从 pickedFolder 创建一个新的 StorageFolder 而不是这一行

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(pickedFolder.Path);

只需使用 pickedFolder 本身:

var pathFolderList = await pickedFolder.GetFilesAsync(); //Exception

我在我的博客文章 Skip the path: stick to the StorageFile 中对此进行了更详细的介绍。

关于c# - 通过 FilePicker 访问时 StorageFolder.GetFolderFromPathAsync 出现 UnAuthorizedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com