我正在尝试下载位于互联网站点上的文件,并且我知道如何使用 WebClient
类。
但是在这种情况下,网站被重定向到某个网址,因此,我正在考虑使用 Process.Start("重定向前的 URL 地址")
来避免位通过重定向网址下载的复杂性。我什至通过重定向的网址成功下载了该文件。
但是,我很好奇,希望通过删除一些中间步骤(如果可能)来加快我的申请速度。
如果我通过 Process.Start("重定向前的 URL 地址")
进行处理,则会显示 下载提示
,询问用户“您想打开吗” ?节省?另存为?'。
我不希望显示此下载提示,并希望自动保存以在我的应用程序中使用该文件。(如果可能,我想指出要保存的位置(路径)。)
非常感谢!
最佳答案
Process.Start("Some URL")
只是告诉操作系统处理 URL。操作系统看到一个 URL 并将其提供给默认浏览器。默认浏览器会执行其配置的任何操作。因此,使用 Process.Start("Some URL")
您不能强制默认浏览器不显示下载提示。
您可能正在寻找HttpWebRequest.AllowAutoRedirect 。
来自 MSDN 的示例:
HttpWebRequest myHttpWebRequest= (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest.MaximumAutomaticRedirections=1;
myHttpWebRequest.AllowAutoRedirect=true;
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
当然你想要一个文件:
using (var stream = myHttpWebResponse.GetResponseStream()) {
using (var fileStream = new FileStream(filePath, FileMode.Create)) {
stream.CopyTo(fileStream);
}
}
关于c# - 如何禁用下载提示,如 'do you want to open or save or save_as?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37112033/