CefSharp下载文件的权限

时间:2018-11-07 06:05:41

标签: c# download cefsharp

我是CefSharp的新手,正设法让它处理下载。我已经实现了IDownloadHandler,它可以按照我想要的方式下载到临时目录。但是,下载后,我尝试对文件进行更多处理,但似乎没有任何许可就下载了该文件,因此当我尝试对其进行任何处理(在这种情况下,解压缩zip文件)时,它使我无法访问。

我可以通过文件资源管理器查看文件,并且在安全选项卡中收到消息“没有组或用户无权访问此对象...”。如果我将自己添加为用户,那很好,但是如果不这样做,我将无法对该文件做任何事情。

那么您如何下载某些东西并使其易于使用?

这是我的下载处理程序类:

class CefDownloadHandler : IDownloadHandler
{
    public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
    {
        Debug.WriteLine("Before Download");

        callback.Continue(Path.Combine(Path.GetTempPath(), downloadItem.SuggestedFileName), false);
    }

    public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
    {
        if (downloadItem.IsComplete)
        {
            new FileInfo(downloadItem.FullPath).SetAccessControl(new System.Security.AccessControl.FileSecurity())
            CoreApp.StartContentLoad(downloadItem.FullPath, downloadItem.Url);
        }

    }
}

编辑

这似乎与更多测试后的位置有关。我最初是使用Path.GetTempPath()保存到temp目录的,并遇到了这个问题。为了进行测试,我修改为使用%appdata%下的文件夹,该文件夹可以使用常规权限保存并可以正常工作。我对temp文件夹具有访问权限,因此我不确定为什么,但是它似乎与此有关...

1 个答案:

答案 0 :(得分:0)

您不应直接保存在ApplicationData文件夹中,如here所述。