在我的UWP应用程序中,我正在创建文件,这些文件应该被Windows索引引用,以便稍后可以使用全文搜索找到它们。
在上述示例中,在Windows 10版本1709下执行代码时,
在这两种情况下,位置被添加到Windows索引(通过“索引选项”添加)。
我检查了权限,它们似乎完全相同。我还尝试在相应的文件夹中手动创建一个文件,并使用Windows资源管理器的Windows搜索功能,结果显示为0个(在1803下,结果如预期地显示为0)。在一些情况下,创建的文件最终出现在查询中并可搜索,我不知道为什么。
我在3台不同的Windows 10 1803机器上尝试过这个问题,结果完全相同(在几台1709机器上工作正常)。
public async Task TestFullTextSearch()
{
StorageFolder folder = ApplicationData.Current.LocalCacheFolder;
CreateFile(folder.Path + Path.DirectorySeparatorChar + "myDocument.txt", "Some text 123");
await Task.Delay(5000); // to ensure that the file is already index before querying
int numberOfResults = await SearchForResults(folder, "*");
// numberOfResults is 1 in Windows 10, 1709 and 0 in 1803
}
public void CreateFile(string path, string text)
{
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine(text);
}
}
private async Task<int> SearchForResults(StorageFolder folder, string searchString)
{
QueryOptions queryOptions = new QueryOptions(CommonFileQuery.OrderBySearchRank, new List<string>() { "*" });
queryOptions.UserSearchFilter = searchString;
StorageFileQueryResult queryResult = folder.CreateFileQueryWithOptions(queryOptions);
IReadOnlyList<StorageFile> files = await queryResult.GetFilesAsync();
return files.Count;
}
在上述示例中,在Windows 10版本1709下执行代码时,
numberOfResults
为1。在同样的代码在Windows 10版本1803下执行时,numberOfResults
为0。在这两种情况下,位置被添加到Windows索引(通过“索引选项”添加)。
我检查了权限,它们似乎完全相同。我还尝试在相应的文件夹中手动创建一个文件,并使用Windows资源管理器的Windows搜索功能,结果显示为0个(在1803下,结果如预期地显示为0)。在一些情况下,创建的文件最终出现在查询中并可搜索,我不知道为什么。
我在3台不同的Windows 10 1803机器上尝试过这个问题,结果完全相同(在几台1709机器上工作正常)。