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示例。
非常感谢你!
慕桂英4014372
杨魅力
相关分类