首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StorageFile从OnFileActivated获得重命名时抛出错误?

StorageFile从OnFileActivated获得重命名时抛出错误?
EN

Stack Overflow用户
提问于 2019-08-15 06:28:49
回答 1查看 109关注 0票数 0

我的UWP应用程序会引发System.UnauthorizedAccessException: Access is denied错误,当我试图重命名来自OnFileActivatedStorageFile时,如下所示。

代码语言:javascript
复制
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://learn.microsoft.com/en-us/windows/uwp/launch-resume/handle-file-activation

我在OnFileActivated文件中实现了app.cs覆盖方法。我在清单中设置了文件类型关联。一切都很好。我能够处理文件和写内容给它,没有任何问题。除了上述问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-15 08:05:58

我想原因可能是您只有对文件本身的权限,所以删除它是可以的,但是您没有对文件位置的权限,例如,文档说:

您不应该尝试访问文件的路径,因为您的应用程序可能没有文件位置的权限。

如果您知道经典的System.IO API,您可能还记得没有Rename方法。要重命名,实际上需要调用方法,这显然需要对文件夹本身拥有权限。因此,我认为RenameAsync使用了类似的方法,因此不允许您执行此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57505638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档