原文:https://www.cnblogs.com/testsec/p/6095713.html
/// <summary>
/// http下載文件
/// </summary>
/// <param name="url">下載文件地址</param>
/// <param name="path">文件存放地址,包含文件名</param>
/// <returns></returns>
public bool HttpDownload(string url, string path)
{
string tempPath = System.IO.Path.GetDirectoryName(path) + @"\temp";
System.IO.Directory.CreateDirectory(tempPath); //創建臨時文件目錄
string tempFile = tempPath + @"\" + System.IO.Path.GetFileName(path) + ".temp"; //臨時文件
if (System.IO.File.Exists(tempFile))
{
System.IO.File.Delete(tempFile); //存在則刪除
}
try
{
FileStream fs = new FileStream(tempFile, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
// 設置參數
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
//發送請求並獲取相應迴應數據
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序纔開始向目標網頁發送Post請求
Stream responseStream = response.GetResponseStream();
//創建本地文件寫入流
//Stream stream = new FileStream(tempFile, FileMode.Create);
byte[] bArr = new byte[1024];
int size = responseStream.Read(bArr, 0, (int)bArr.Length);
while (size > 0)
{
//stream.Write(bArr, 0, size);
fs.Write(bArr, 0, size);
size = responseStream.Read(bArr, 0, (int)bArr.Length);
}
//stream.Close();
fs.Close();
responseStream.Close();
System.IO.File.Move(tempFile, path);
return true;
}
catch (Exception ex)
{
return false;
}
}