我最近发现了this文章,以回应在通用Windows平台上监听文件更改的问题。我希望能够指定一个文件夹,并监听其中的文件和文件夹的创建/删除和移动。我发现的其他方法包括创建一个可观察的集合,并为CollectionChanged事件设置一个方法来处理更改,但这并不能让我访问完全改变的内容。像文章中的示例一样使用StorageLibrary似乎是最佳路径,但StorageLibraries是从KnownFolderIds创建的。是否值得研究将我指定的文件夹添加到KnownFolderIds列表中,还是应该在其他地方寻找?
答案 0 :(得分:2)
如the article所述,有两种类型的更改通知:前景变更事件和后台变更通知。
对于前台更改事件,它可以用于任何文件夹或库,但仅在应用程序在前台运行时才可用。对于后台更改通知,即使应用程序未运行,它也可以继续监控,但仅适用于命名库。所以对于你的问题,这取决于你的特定情况。您可以根据自己的要求选择其中一种。
但是,KnownFolderId是枚举,无法向其添加文件夹。我们可以做的是使用StorageLibrary.RequestAddFolderAsync方法提示用户选择一个文件夹,然后将该文件夹添加到其中一个已知库中。除了这两个更改通知之外,目前还没有其他方法可以监视UWP中的文件系统更改。