【发布时间】:2019-08-15 16:05:58
【问题描述】:
当我尝试重命名从 OnFileActivated 获取的 StorageFile 时,我的 UWP 应用抛出 System.UnauthorizedAccessException: Access is denied 错误,如下所示。
protected async override void OnFileActivated(FileActivatedEventArgs args)
{
//----------------< OnFileActivated() >----------------
//* when opened by file-extension
base.OnFileActivated(args);
StorageFile file = (StorageFile) args.Files[0];
await file.RenameAsync("hello.jpg"); //It throws error
await file.DeleteAsync(); //It works
return;
}
这似乎很奇怪,因为DeleteAsync 毫无例外地工作。如果文件是只读的,我如何删除该文件?如果文件不是只读的,为什么我无法重命名它?
场景:
OnFileActivated 方法用于在用户单击具有应用程序注册的扩展名的文件时检索文件以进行处理。更多信息:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-file-activation
我在 app.cs 文件中实现了OnFileActivated 覆盖方法。我在清单中设置了文件类型关联。一切正常。我能够毫无问题地处理文件并将内容写入其中。上述问题除外。
【问题讨论】:
-
非常不寻常,这里的官方回答会有所帮助。我想可能是您无权访问文件夹本身,但它仍然无法解释删除
-
是的,我也觉得这很不寻常,你能分享更多
OnFileActivated的方法吗?我不知道你是如何得到文件的。 -
我已包含更多信息
标签: uwp