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 字段并且它有效。
我想监视文件夹的递归更改。 我使用这个代码:
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 字段并且它有效。