win10 uwp 获取指定的文件 AQS – lindexi_gd的专栏 – CSDN博客

很多时候不需要获取整个文件夹的文件,是需要获取文件夹里指定的文件。

那么 UWP 如何对文件夹里的文件进行过滤,只拿出自己需要的文件?

本文:如何使用通配符或文件匹配方式在uwp获取文件夹中指定的文件

如果阅读中发现有任何句子不通的,请告诉我 [email protected]

假如需要文件 有前缀”latest_” ,简单的方法是拿出 文件夹所有的文件,使用简单的对比,但是这样需要获取文件夹所有文件,速度比较慢。

var previousInfo = (await rootFolder.GetFilesAsync()).Where(file => file.DisplayName.StartsWith("latest_")).FirstOrDefault();

一个好的方法是使用 Advanced Query Syntax

第一步,新建QueryOptions

var queryOptions = new QueryOptions();
queryOptions.ApplicationSearchFilter = "System.FileName:latest_*";

上面的 ApplicationSearchFilter 就是根据 Using Advanced Query Syntax Programmatically (Windows) 写出对应判断

然后从当前的 文件夹 获取匹配

StorageFileQueryResult queryResult = folder.CreateFileQueryWithOptions(queryOptions);

最后就是从结果拿出文件

var files = await queryResult.GetFilesAsync();

参见: http://stackoverflow.com/a/43829407/6116637

UWP 获取指定后缀的文件

修改上面的 ApplicationSearchFilter 为下面格式就可以获得后缀

System.FileExtension:=".后缀"

如获取 txt 可以使用

queryOptions.ApplicationSearchFilter = "System.FileExtension:=".txt"";

设置后缀除了上面的方法,可以使用简单的设置

var queryOptions = new QueryOptions();
            queryOptions.FileTypeFilter.Add(".txt");

除了后缀,还可以设置文件大小

System.Size: 

    System.Size: <1kb

如果有多个判断,使用 and 连接或 or 连接,但是关于他的语法文档很少。

如果需要的搜索是包括子文件夹的内容,请设置 queryOptions.FolderDepth

queryOptions.FolderDepth = FolderDepth.Deep

参见: Advanced Query Syntax

https://docs.microsoft.com/en-us/uwp/api/windows.storage.search.queryoptions

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系

CSDN博客稿源:CSDN博客 (源链) | 来自的投递 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合技术 » win10 uwp 获取指定的文件 AQS – lindexi_gd的专栏 – CSDN博客

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录