zoukankan      html  css  js  c++  java
  • 2018-2-13-win10-uwp-获取指定的文件-AQS

    title author date CreateTime categories
    win10 uwp 获取指定的文件 AQS
    lindexi
    2018-2-13 17:23:3 +0800
    2018-2-13 17:23:3 +0800
    Win10 UWP

    很多时候不需要获取整个文件夹的文件,是需要获取文件夹里指定的文件。 那么 UWP 如何对文件夹里的文件进行过滤,只拿出自己需要的文件? 本文:如何使用通配符或文件匹配方式在uwp获取文件夹中指定的文件 如果阅读中发现有任何句子不通的,请告诉我 lindexi_gd@163.com

    假如需要文件 有前缀"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

  • 相关阅读:
    variables _ golang
    values _ golang
    hello world _ golang
    golang
    英语
    ubuntu下安装node、node代码调试
    xampp日常需求
    垂直居中方法总结
    angularJS之ui-router插件(1)
    Sass学习
  • 原文地址:https://www.cnblogs.com/lindexi/p/12086276.html
Copyright © 2011-2022 走看看