【发布时间】:2015-11-10 09:37:18
【问题描述】:
我有一个可以保存文件的通用 Windows 平台应用。在大多数情况下,它工作得很好。但是,每当我尝试将文件保存到 Dropbox 监视的文件夹中时,都会出现以下异常:
Platform::AccessDeniedException ^ 在内存位置 0x045FD0D0。 HRESULT:0x80070005 访问被拒绝。 WinRT 信息:访问被拒绝。
这是由我的代码中的这一行引起的,在我保存文件之前调用:
CachedFileManager::DeferUpdates(file);
documentation 中的任何内容都没有向我表明问题所在,或者实际上甚至可能引发此异常,尽管在大多数 API 中当然没有详细记录异常。
OneDrive 监视的文件夹中不会出现此问题。
文件是否已同步到 Dropbox 似乎并不重要。如果文件是新文件,则将创建一个新文件,然后抛出此异常。如果文件存在,则在更新之前会抛出此异常。
为什么会发生这种情况,我该如何正确解决?
现在,我只是将该行包含在一个 try catch 块中,我丢弃了AccessDeniedException。
更新:我刚刚切换到 Windows Insider 预览版。我在 Build 14295 上,这个问题略有变化。这是新的例外:
Platform::COMException ^ 在内存位置 0x00000043892FB9F0。 HRESULT:0x8000FFFF 灾难性故障
仍然不知道为什么会发生这种情况,但类似的黑客解决方案有效,现在我也丢弃了COMException。
【问题讨论】:
标签: windows-runtime win-universal-app c++-cx