c# - 如何禁用下载提示,如 'do you want to open or save or save_as?'

标签 c# wpf download process.start

我正在尝试下载位于互联网站点上的文件,并且我知道如何使用 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/

相关文章:

.net - 使用 SSH.NET (VB.NET) 将文件下载到字节数组

c# - Azure函数: async method and output parameters

c# - 为 Crystal Reports 中的参数分配多个值

c# - 如何使用我的 List<Type> 中的类型?

c# - XAML 设计器中的 "Method not found"错误

java - 下载失败时 DownloadManager 游标属性 COLUMN_LOCAL_FILENAME 为空

java - 使用按位运算符交换两个变量而不使用 c 中的第三个变量

c# - 如何以编程方式禁用 WPF DataGrid 中的特定单元格

c# - 绑定(bind)自定义属性类 WPF

c# - 下载后文本文件错误