为了账号安全,请及时绑定邮箱和手机立即绑定

Windows 10通用应用程序文件/目录访问

Windows 10通用应用程序文件/目录访问

C#
白衣非少年 2019-08-19 16:37:00
Windows 10通用应用程序文件/目录访问我正在开发一个从文件系统上的可配置位置读取jpeg和pdf文件的应用程序。目前有一个在WPF中实现的运行版本,现在我正在尝试迁移到新的Windows Universal应用程序。以下代码适用于WPF:public IList<string> GetFilesByNumber(string path, string number)     {         if (string.IsNullOrWhiteSpace(path))             throw new ArgumentNullException(nameof(path));         if (string.IsNullOrWhiteSpace(number))             throw new ArgumentNullException(nameof(number));         if (!Directory.Exists(path))             throw new DirectoryNotFoundException(path);         var files = Directory.GetFiles(path, "*" + number + "*",            SearchOption.AllDirectories);         if (files == null || files.Length == 0)             return null;         return files;     }使用通用应用程序我遇到了一些问题:Directory.Exists 不可用如何从应用程序存储区外的目录中读取?要从应用程序存储区外的其他目录中读取,我尝试了以下操作:StorageFolder folder = StorageFolder.GetFolderFromPathAsync("D:\\texts\\");var fileTypeFilter = new string[] { ".pdf", ".jpg" };QueryOptions queryOptions = new QueryOptions(CommonFileQuery.OrderBySearchRank, fileTypeFilter);queryOptions.UserSearchFilter = "142";StorageFileQueryResult queryResult = folder.CreateFileQueryWithOptions(queryOptions);IReadOnlyList<StorageFile> files = queryResult.GetFilesAsync().GetResults();问题是:它不起作用,但我得到一个例外:TextManager.Universal.DataAccess.dll中出现“System.UnauthorizedAccessException”类型的异常但未在用户代码中处理附加信息:访问被拒绝。(HRESULT异常:0x80070005(E_ACCESSDENIED))我知道你必须在清单中配置一些权限,但我找不到适合文件系统IO操作的权限......有人也有这样的问题/可能的解决方案吗?解决方案: 从@Rico Suter给我的解决方案中,我选择了FutureAccessList和FolderPicker。重新启动程序后,也可以使用令牌访问该条目。我还可以向您推荐UX Guidlines和这个Github示例。非常感谢你!
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

接受的答案已不再完整。现在可以broadFileSystemAccess在app清单中声明任意读取文件系统。

“ 文件访问权限”页面包含详细信息。

请注意,用户仍然可以通过设置应用撤消此权限。


查看完整回答
反对 回复 2019-08-19
?
杨魅力

TA贡献1811条经验 获得超5个赞

这是一种受限制的能力。可在“设置”>“隐私”>“文件系统”中配置访问并启用您的应用程序的访问权限 由于用户可以随时在“设置”中授予或拒绝权限,因此应确保您的应用能够适应这些更改。如果您发现您的应用程序无权访问,您可以选择通过提供指向Windows 10文件系统访问和隐私文章的链接来提示用户更改设置。请注意,用户必须关闭应用,切换设置,然后重新启动应用。如果他们在应用程序运行时切换设置,平台将暂停您的应用程序,以便您可以保存状态,然后强制终止应用程序以应用新设置。在2018年4月更新中,权限的默认值为“开”。在2018年10月更新中,默认为关闭。


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 722 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信