我正在开发一个需要完全访问文件系统的跨平台应用程序。我最终将同时定位 Windows 和 Mac 。
最终,我需要能够读取/写入系统上任何位置的文件的音频文件属性(作者,流派等)。
我已将UWP应用设置为清单中具有 Broad File System Access ,但这似乎还不够:访问仍被拒绝。
使用 FilePicker 可以进行首次访问,但是 应用程序将需要对文件的读/写访问权限,而无需用户 一直在捡他们
代码共享策略是 .NET Standard ,而不是 Shared 项目
我记得在某处看到使用 FilePicker 打开文件后,您可以在某些应用程序设置中保存引用/文件路径,这样当应用程序希望在没有用户的情况下访问文件时,访问权限将自动授予。我想尝试一下,但我不记得在哪里读。
什么是最好的方法和/或下一步?
谢谢
答案 0 :(得分:1)
您可能需要我记得曾经在某处看到过,使用FilePicker打开文件后,您可以将引用/文件路径保存在某些应用程序设置中,这样当应用程序希望在没有用户访问的情况下自动授予访问权限。
StorageApplicationPermissions.FutureAccessList
属性。它可以用来获取代表应用程序所维护列表的对象,以便该应用程序可以存储文件和/或位置(如文件夹),并在将来轻松访问这些项目。有关使用的详细信息,请参阅以下内容。
static public string FolderAccessToken { get; set; }
private async void Pick_Button_Click(object sender, RoutedEventArgs e)
{
var picker = new FolderPicker();
picker.FileTypeFilter.Add(".xml");
var folder = await picker.PickSingleFolderAsync();
if (folder == null)
{
FolderAccessToken = "";
return;
}
FolderAccessToken = StorageApplicationPermissions.FutureAccessList.Add(folder);
}
private async void Get_Button_Click(object sender, RoutedEventArgs e)
{
var folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(FolderAccessToken);
}