Assert.AreEqual(@"C:\Users\Public\Downloads\35ad5275ed17904d4a2d40f3dacea80b.gif", 生成下载文件存放路径(d, new Uri("http://i3.6.cn/cvbnm/7c/15/a3/35ad5275ed17904d4a2d40f3dacea80b.gif"), "image/gif"));
Assert.AreEqual(@"C:\Users\Public\Downloads\35ad5275ed17904d4a2d40f3dacea80b.jpe", 生成下载文件存放路径(d, new Uri("http://i3.6.cn/cvbnm/7c/15/a3/35ad5275ed17904d4a2d40f3dacea80b.gif"), "image/jpeg"));
Assert.AreEqual(@"C:\Users\Public\Downloads\filedownload.dhtml", 生成下载文件存放路径(d, new Uri("http://www.uushare.com/filedownload?user=icesee&id=2205188"), "text/html"));
//一个网页url,其格式为目录形式的,没有确切文件名。
Assert.AreEqual(@"C:\Users\Public\Downloads\g9675.dhtml", 生成下载文件存放路径(d, new Uri("http://www.guaishow.com/u/luanfujie/g9675/"), "text/html"));
//域名形式
Assert.AreEqual(@"C:\Users\Public\Downloads\www.g.cn.dhtml", 生成下载文件存放路径(d, new Uri("http://www.g.cn/"), "text/html"));
Assert.AreEqual(@"C:\Users\Public\Downloads\g.cn.dhtml", 生成下载文件存放路径(d, new Uri("http://g.cn"), "text/html"));
万事俱备,只欠东风了,让我们来完成下载方法:
///
/// 下载文件到指定目录,并返回下载后存放的文件路径
/// 网址
/// 存放目录">存放目录,如果该目录中已存在与待下载文件同名的文件,那么将自动重命名
/// 下载文件存放的文件路径
public string 下载文件(Uri Uri, string 存放目录)
var q = WebRequest.Create(Uri).GetResponse();
var s = q.GetResponseStream();
var b = new BinaryReader(s);
var file = 生成下载文件存放路径(存放目录, Uri, q.ContentType);
FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write);