gpt4 book ai didi

c# - 通用工作计划。将文件从 FileOpenPicker 复制到本地存储

转载 作者:太空宇宙 更新时间:2023-11-03 23:11:18 35 4
gpt4 key购买 nike

FileOpenPicker picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
picker.FileTypeFilter.Add(".txt");

用户选择要打开的文件。我如何才能将该文件存储/复制/保存到本地存储以备将来使用,以便每次打开该应用时,它都会自动选择该文件?

最佳答案

用户使用 FileOpenPicker 打开文件后,您可以使用 StorageApplicationPermissions API“缓存”对其的访问。

一旦有了要自动打开的 StorageFile,就可以使用以下代码“缓存”对它的访问:

string token = StorageApplicationPermissions.FutureAccessList.Add( file );

您返回的是一个字符串 token ,您可以将其保存在应用程序设置中。下次打开应用程序时,您可以使用以下代码再次检索文件:

StorageFile file = 
await StorageApplicationPermissions.FutureAccessList.GetFileAsync(token);

请注意,此 API 最多可存储 1000 个项目,因此如果您希望添加更多项目,则必须确保删除旧文件,否则您将无法添加新文件。

还有一个替代方案 - StorageApplicationPermissions.MostRecentlyUsedList,您可以使用与 FutureAccessList 相同的方式,但它具有自动管理列表的优势。它最多可以存储 25 个项目,但它能够在不再需要时自动删除最旧的项目。

另请注意,此 API 不仅可以缓存对文件的访问,还可以缓存对文件夹 (StorageFolder) 的访问。

复制文件到AppData文件夹

如果您只想创建所选文件的本地副本,可以将其复制到应用程序的本地文件夹。

var file = await picker.PickSingleFileAsync();
if ( file != null )
{
await file.CopyAsync( ApplicationData.Current.LocalFolder );
}

关于c# - 通用工作计划。将文件从 FileOpenPicker 复制到本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39111925/

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