首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP FileWatcher BackgroundTask

UWP FileWatcher BackgroundTask
EN

Stack Overflow用户
提问于 2017-06-21 15:23:51
回答 1查看 458关注 0票数 1

我是新来的,目前正在为我的公司编写Windows 10桌面UWP,它应该通过后台任务检查txt文件,并更新UWP瓷砖/ UWP次级瓦片。

使用StorageLibraryContentChangedTrigger检查用户库很简单,工作也很好。但是我的公司说,用户库不是保存txt文件的好主意(示例1):

代码语言:javascript
复制
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):

代码语言:javascript
复制
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打开/激活时才能工作。

Q1:有什么方法可以触发ApplicationData.Current.LocalFolder,所以我可以这么说。"ApplicationData.Current.LocalFolder.ContentChangedTrigger"?

Q2:如果Q1是不可能的,我如何通过后台任务检查ApplicationData.Current.LocalFolder中的内容更改?

Q3:我知道一个UWP运行在一个沙箱中,但是一个UWP可以限制对windows注册表项的访问吗?读取权限已经足够了。

谢谢你的答覆:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 16:22:20

Q1:有什么方法可以触发ApplicationData.Current.LocalFolder,所以我可以这么说。"ApplicationData.Current.LocalFolder.ContentChangedTrigger"?

对我来说没有。然而,使用StorageLibraryContentChangedTrigger,您可以将文本文件放在文档库中,也许这对您的公司更有意义。我会告诉你的公司,拥有一个理想的UWP应用程序是目前的梦想。

Q2:如果Q1是不可能的,我如何通过后台任务检查ApplicationData.Current.LocalFolder中的内容更改?

您可以注册一个计时后台任务,然后每15分钟在背景中检查文件的最后修改日期。另一种替代方法是使用推送通知更新瓦片,而不是本地文本文件。

Q3:我知道一个UWP运行在一个沙箱中,但是一个UWP可以限制对windows注册表项的访问吗?读取权限已经足够了。

不是的。

编辑

您需要文档限制的功能才能访问Documents文件夹。要使其用于开发,请手动将条目添加到xml Package.manifest文件中:

代码语言:javascript
复制
<uap:Capability Name="documentsLibrary"/>

为了将应用程序提交到具有这种受限功能的商店,您需要请求提交。

任何人都可以请求访问此功能以进行存储提交。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44680259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档