//读一个URL 下载到磁盘
//url 地址 filename 路径
public static bool DownLoad(string Url, string FileName)
{
bool Value = false;
WebResponse response = null;
Stream stream = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Timeout = 60000;
response = request.GetResponse();
stream = response.GetResponseStream();
if (!response.ContentType.ToLower().StartsWith("text/"))
{
Log.CreateLogManager().Error("url" + Url + "FileName" + FileName + " err" + Value);
Value = SaveBinaryFile(response, FileName);
return true;
}
else
{
Log.CreateLogManager().Error("url" + Url + "FileName" + FileName + " err false");
return false;
}
}
catch (Exception err)
{
Log.CreateLogManager().Error("url" + Url + "FileName" + FileName + " err" + err);
return false;
}
}
/// <summary>
/// Save a binary file to disk.
/// </summary>
/// <param name="response">The response used to save the file</param>
// 将二进制文件保存到磁盘
private static bool SaveBinaryFile(WebResponse response, string FileName)
{
bool Value = true;
byte[] buffer = new byte[1024];
try
{
if (File.Exists(FileName))
File.Delete(FileName);
Stream outStream = System.IO.File.Create(FileName);
Stream inStream = response.GetResponseStream();
int l;
do
{
l = inStream.Read(buffer, 0, buffer.Length);
if (l > 0)
outStream.Write(buffer, 0, l);
}
while (l > 0);
outStream.Close();
inStream.Close();
}
catch (Exception err)
{
Log.CreateLogManager().Error("流错误:" + err);
Value = false;
}
return Value;
}