您的位置:首页 > 其它

从服务器下载文件的方法

2012-07-11 15:44 246 查看
前不久做的东西需要用到一个自动更新的方法所用到。

/// <summary>

/// 下载文件

/// </summary>

/// <param name="URL">下载的基本链接地址(不含文件名)</param>

/// <param name="Filename">下载的文件名</param>

/// <param name="DownLoadPath">下载到本地的路径名</param>

private bool DownLoadFile(string URL, string Filename, string DownLoadPath)

{

try

{

//从URL地址得到一个WEB请求

System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL + Filename);

//设置这个属性判断文件下载前或下载中网络是否断开(很重要)

Myrq.ReadWriteTimeout = 1000;

//从WEB请求得到WEB响应

System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();

//从WEB响应得到总字节数

long totalBytes = myrp.ContentLength;

//从WEB请求创建流(读)

System.IO.Stream st = myrp.GetResponseStream();

//判断文件夹是否存在,不存在则建立新文件夹

if (!Directory.Exists(DownLoadPath))

{

Directory.CreateDirectory(DownLoadPath);

}

//记录实际下载的字节数

long totalDownloadedByte = 0;

//创建文件流(写)

System.IO.Stream so = new System.IO.FileStream(DownLoadPath + Filename, System.IO.FileMode.Create);

byte[] by = new byte[1024];

//读流

int osize = st.Read(by, 0, (int)by.Length);

while (osize > 0)

{

//已更新的文件大小

totalDownloadedByte += osize;

//写流

so.Write(by, 0, osize);

//读流

osize = st.Read(by, 0, (int)by.Length);

}

//关闭流

so.Close();

//关闭流

st.Close();

//下载的字节数判断是否下载成功了

if (totalDownloadedByte == totalBytes)

{

return true;

}

else

{

return false;

}

}

catch (Exception ex)

{

return false;

//throw new Exception("下载更新文件出错:" + ex.Message);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: