using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace WebUpdate
{
public class DownFile
{
//从服务器下载文件,若目录存在,直接复制新文件,不存在则新建目录并复制文件,成功后返回1
public bool DownFileFromServ(string url, string fileName)
{
bool downsucess = false;
try
{
string fileExtraName = url.Split(char.Parse("."))[0]; //文件名
string fileAfterName = System.IO.Path.GetExtension(url); //文件的扩展名
if (fileAfterName == ".aspx")
url = fileAfterName + ".txt";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.KeepAlive = true;
HttpWebResponse myRes = (HttpWebResponse)myReq.GetResponse();
downsucess = this.CopyFileAndDirectory(myRes, fileName);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return downsucess;
}
//返回复制文件或创建目录是否成功
public bool CopyFileAndDirectory(WebResponse myResp, string fileName)
{
bool flag = true;
byte[] buffer = new byte[0x400];
try
{
int num;
//若本身已有该目录则删除
if (System.IO.File.Exists(fileName))
{
System.IO.File.Delete(fileName);
}
//创建目录更新到Updat目录下
string directoryName = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}
//指定文件fileName不存在时创建它
Stream streamRead = System.IO.File.Open(fileName, FileMode.Create);
Stream responseStream = myResp.GetResponseStream();
do
{
//从当前读取的字节流数,复制
num = responseStream.Read(buffer, 0, buffer.Length);
if (num > 0)
{
streamRead.Write(buffer, 0, num);
}
}
while (num > 0);
streamRead.Close();
responseStream.Close();
}
catch
{
flag = false;
}
return flag;
}
}
}