我正在尝试下载位于互联网网站上的文件,我知道如何使用WebClient
课程。
但是在这种情况下,网站被重定向到某个网址,因此,我正在考虑使用Process.Start("URL address before re-directed")
来避免通过重定向网址下载比特复杂性。我甚至成功通过重定向网址下载了该文件。
但是,我很好奇,如果可能的话,我想通过删除一些中间步骤来加速我的应用程序。
如果我接近Process.Start("URL address before re-directed")
,则显示Download Prompt
会询问用户“您想要打开吗?保存? Save_as?”。
我不希望显示此下载提示并希望自动保存以在我的应用程序中使用该文件。(如果可能,我想指出要保存的位置(路径)。)
非常感谢你!
答案 0 :(得分:2)
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);
}
}