最近做WPF遇到一个从另外的网页爬取报表数据并且下载的功能,找了些资料最后用webClient.DownloadFile(path, filename);.实现,并使用SaveFileDialog选择弹窗提示保存位置
具体实现如下:
前端:
<Button Content="下 载" Height="23" HorizontalAlignment="Left" Margin="416,87,0,0" Name="button3" VerticalAlignment="Top" Width="75" Click="DownFile_click" />
后端:
//下载
private void DownFile_click(object sender, RoutedEventArgs e)
{
//下载资源的URL路径
String path = "http://1.caifu369.com/0905/flashbanner/0615/398.rar";
WebClient webClient = new WebClient();
SaveFileDialog dlg = new SaveFileDialog();
//要保存的文件的文件名("文件名和文件类型")
dlg.FileName = "TestDownFile.rar";
//初始化提示保存文件的路径地址
dlg.InitialDirectory = "D:\\FileTest";
if (dlg.ShowDialog() == true)
{
//获取要保存文件名的完整路径
string filename = dlg.FileName;
filename = "D:\\FileTest\\TestDownFile.rar";//下载的实际存储的位置
try
{
//参数为下载URL和文件名()
webClient.DownloadFile(path, filename);
//下载完成后提示下载完成
MessageBox.Show("文档下载成功!!!");
}
catch (Exception)
{
throw;
}
}
}
这里需要注意的是
SaveFileDialog仅仅是实现弹框提示保存位置,只有位置和文件名与下载的路径和文件名一致 时文件才会被保存在此位置上。
SaveFileDialog 类(摘录自msdn)
名称 | 说明 | |
---|---|---|
AddExtension |
获取或设置一个值,该值指示如果用户省略扩展名,对话框是否自动在文件名中添加扩展名。(从FileDialog 继承。) |
|
AutoUpgradeEnabled |
获取或设置一个值,该值指示是否此 FileDialog 实例应自动升级外观和行为上运行时 Windows Vista。(从 FileDialog 继承。) |
|
CheckFileExists |
获取或设置一个值,该值指示如果用户指定不存在的文件名,对话框是否显示警告。(从 FileDialog继承。) |
|
CheckPathExists |
获取或设置一个值,该值指示如果用户指定不存在的路径,对话框是否显示警告。(从 FileDialog 继承。) |
|
Container |
获取 IContainer ,其中包含 Component。(从 Component 继承。) |
|