我是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文件夹具有访问权限,因此我不确定为什么,但是它似乎与此有关...