对于 Windows 应用商店应用程序:我如何检测StorageFile
在我的应用程序中打开时是否在我的应用程序之外重命名或删除了它?
我在桌面上运行了一个 Windows 10 UWP 应用程序。该应用程序允许用户打开和编辑文档。
我尝试过的事情:
- 检查 DateModified:
- 我尝试检查
storageFile.GetBasicPropertiesAsync().DateModified
,但即使删除文件并清空垃圾箱,调用也会成功返回 (old)DateModified
。(我假设它使用内存版本并且不检查磁盘上的文件)
- 我尝试检查
- 重新打开 StorageFile:
- 然后我尝试使用
StorageFile.GetFileFromPathAsync(file.Path)
.FileNotFoundException
这是第一次正确抛出。 - 然而,后来这失败了,但有一个
Unauthorized access/permission denied
例外。这有点道理,因为我需要用户在 FileOpenPicker 中选择文件才能让我的应用程序获得使用它的权限。
- 然后我尝试使用
- 监控父文件夹:
- 这个没有走多远。我尝试使用
StorageFolder.CreateFileQuery()
,但无法从 StorageFile 实例访问父文件夹(同样,这是有道理的,因为我的应用程序无权访问父文件夹)
- 这个没有走多远。我尝试使用