UWP:部分路径上的GetFileAsync?

时间:2017-05-06 20:44:54

标签: c# file uwp window win-universal-app

我正在尝试根据其部分名称在UWP中获取单个文件。基本上,我想在给定的文件夹中选择以“latest_”开头的文件。 现在我可以用那个命令做到这一点:

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

我认为如果文件夹中有很多文件,这段代码效率不高......
有更简单的方法吗?像:

var previousInfo2 = await rootFolder.GetFileAsync("latest_*");

或者:

var previousInfo2 = await rootFolder.GetFileAsync(@"latest_*");

现在这段代码抛出异常(无效参数)。关于这个函数的MSDN文档非常简单:它只是说该函数将一个字符串作为参数...
谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用Advanced Query Syntax执行此操作,事实上,您可以通过更多文件元数据进行过滤/搜索。以下是基于文件名的搜索示例。

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

StorageFileQueryResult queryResult = rootFolder.CreateFileQueryWithOptions(queryOptions);

var files = await queryResult.GetFilesAsync();