StorageItemQueryResult.ContentsChanged 事件未触发

StorageItemQueryResult.ContentsChanged event not fired

我想监视文件夹的递归更改。 我使用这个代码:

public async void StartMonitor(string folderPath)
{
    StorageFolder storageFolder = await StorageFolder.GetFolderFromPathAsync(folderPath);
    QueryOptions queryOptions = new QueryOptions();
    queryOptions.FolderDepth = FolderDepth.Deep;
    StorageItemQueryResult query = storageFolder.CreateItemQueryWithOptions(queryOptions);
    query.ContentsChanged += QueryContentsChanged;
    await query.GetItemsAsync();
}

private void QueryContentsChanged(IStorageQueryResultBase sender, object args)
{
    //to do
}

事件在 StatMonitor 执行后触发一次。但是当我在此目录中创建文件或文件夹时,不会触发事件。我怎样才能触发这个事件?

根据文档 - StorageFolderQueryResult.ContentsChanged Event, it mentions that you need to call the StorageFileQueryResult.GetFilesAsync Method 至少一次以使活动正常进行。因此,请在处理 ContentsChanged 事件之前先尝试调用 GetFilesAsync 方法。

查询对象超出范围。我将查询对象设为私有 class 字段并且它有效。