GetFolderFromPathAsync 函数访问被拒绝
GetFolderFromPathAsync function access denied
我正在制作一个 Windows 10 通用应用程序,我希望用户选择一个文件夹来保存该应用程序的文档文件。此文件夹的路径保存到 ApplicationData.Current.RoamingSettings.Values
。
这是代码:
第一次开始时:
var folderPicker = new FolderPicker { SuggestedStartLocation = PickerLocationId.ComputerFolder };
StorageFolder folder = await folderPicker.PickSingleFolderAsync();
StorageFolder homeFolder = await folder.CreateFolderAsync("App1 Data", CreationCollisionOption.OpenIfExists);
var save = ApplicationData.Current.RoamingSettings.Values;
save["HomeFolder"] = homeFolder.Path;
设置主文件夹时:
string dir = save["HomeFolder"].ToString();
try
{
StorageFolder homeFolder = await StorageFolder.GetFolderFromPathAsync(dir);
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
第二个代码示例中抛出的异常是:
System.UnauthorizedAccessException: access denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
所以我的问题是,如何正确使用GetFolderFromPathAsync函数?
我检查了所有路径的字符串,它们都没有问题,甚至
StorageFolder.GetFolderFromPathAsync(storageFolder.Path);
不起作用。
你知道解决办法吗?
直接使用 StorageFile 而不是转换为路径。
要存储从文件选取器返回的文件供以后使用,请将 StorageFile 保存在 AccessCache 类 FutureAccessList 或 MostRecentlyUsedList 中。该路径不包括打开文件所需的权限。 StorageFile 携带权限并授予对文件的访问权限。
我在我的博客文章中对此进行了更详细的讨论 Skip the path: stick to the StorageFile
我正在制作一个 Windows 10 通用应用程序,我希望用户选择一个文件夹来保存该应用程序的文档文件。此文件夹的路径保存到 ApplicationData.Current.RoamingSettings.Values
。
这是代码:
第一次开始时:
var folderPicker = new FolderPicker { SuggestedStartLocation = PickerLocationId.ComputerFolder };
StorageFolder folder = await folderPicker.PickSingleFolderAsync();
StorageFolder homeFolder = await folder.CreateFolderAsync("App1 Data", CreationCollisionOption.OpenIfExists);
var save = ApplicationData.Current.RoamingSettings.Values;
save["HomeFolder"] = homeFolder.Path;
设置主文件夹时:
string dir = save["HomeFolder"].ToString();
try
{
StorageFolder homeFolder = await StorageFolder.GetFolderFromPathAsync(dir);
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
第二个代码示例中抛出的异常是:
System.UnauthorizedAccessException: access denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
所以我的问题是,如何正确使用GetFolderFromPathAsync函数? 我检查了所有路径的字符串,它们都没有问题,甚至
StorageFolder.GetFolderFromPathAsync(storageFolder.Path);
不起作用。 你知道解决办法吗?
直接使用 StorageFile 而不是转换为路径。
要存储从文件选取器返回的文件供以后使用,请将 StorageFile 保存在 AccessCache 类 FutureAccessList 或 MostRecentlyUsedList 中。该路径不包括打开文件所需的权限。 StorageFile 携带权限并授予对文件的访问权限。
我在我的博客文章中对此进行了更详细的讨论 Skip the path: stick to the StorageFile