是否可以通过我的应用程序获取任何外部应用程序打开的文件句柄?
以云存储应用程序为例,我想跟踪通过存储提供程序应用程序打开的文件的更改,以便之后可以再次上载被操作的文件。
答案 0 :(得分:1)
这里有两种可能的答案,具体取决于您正在实施的应用类型。
出于一般跟踪目的,您可以尝试在Windows.Storage.Search中使用StoreFolderQueryResult / StorageFileQueryResult类的ContentsChanged事件。也就是说,您要为要监视的内容创建文件或文件夹查询,然后注册事件处理程序。一般来说,这适用于本地文件系统上的东西;如果您尝试对其后备存储位于其他位置的文件/文件夹运行查询,则无法保证。
这个主题太详细了,不能在这里描述,但你可以参考我的免费电子书Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition,第607章的第11章中的“文件和文件夹查询”。尽管我把重点放在JS作为一种语言,像这样的WinRT API的讨论在使用任何语言时都很有用......加上电子书是免费的,所以没有什么可失去的。
如果您正在实施一个提供云存储后端接口的应用程序,例如Windows的OneDrive应用程序,那么另一种机制将非常有用。在这种情况下,您需要使用CachedFileUpdater合约。参见我上述书籍的附录D,第1288页。