【发布时间】:2017-06-21 15:23:51
【问题描述】:
我是新来的,目前正在为我的公司编写 Windows 10 桌面 UWP,它应该通过后台任务检查 txt 文件并更新 UWP 磁贴/UWP 辅助磁贴。
使用 StorageLibraryContentChangedTrigger 检查用户库很简单,而且工作正常。但我的公司表示,用户库不是保存 txt 文件(示例 1)的好主意:
StorageLibrary videosLib = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Videos);
StorageLibraryContentChangedTrigger videoTrigger = StorageLibraryContentChangedTrigger.Create(videosLib);
taskBuilder = new BackgroundTaskBuilder();
taskBuilder.Name = taskNameFileChanged;
taskBuilder.TaskEntryPoint = taskFileChangedEntryPoint;
taskBuilder.SetTrigger(videoTrigger);
register = taskBuilder.Register();
使用此代码检查应用本地文件夹(示例 2):
List<string> typeFilter = new List<string>();
typeFilter.Add(".txt");
var queryoptions = new Windows.Storage.Search.QueryOptions(Windows.Storage.Search.CommonFileQuery.OrderByName, typeFilter);
var query = ApplicationData.Current.LocalFolder.CreateFileQueryWithOptions(options);
//subscribe on query's ContentsChanged event
query.ContentsChanged += Query_ContentsChanged;
private void Query_ContentsChanged(Windows.Storage.Search.IStorageQueryResultBase sender, object args)
{
Debug.WriteLine("File has changed!!!!");
}
也可以工作,但前提是 UWP 已打开/处于活动状态。
第一季度: 有没有办法触发ApplicationData.Current.LocalFolder,所以我可以说例如“ApplicationData.Current.LocalFolder.ContentChangedTrigger”?
第二季度: 如果 Q1 是不可能的,我怎么能通过后台任务检查 ApplicationData.Current.LocalFolder 的内容更改?
第三季度: 我知道 UWP 在沙盒中运行,但 UWP 是否可以限制访问 Windows 注册表项?读取权限已经足够了。
提前感谢您的回答:-)
【问题讨论】:
标签: uwp background-task file-watcher