/// <summary>
/// 下载文件函数
/// </summary>
/// <param name="url">下载地址</param>
/// <param name="Path">保存路径</param>
/// <param name="typeName">类型:文件或图片</param>
private bool DownFile(string url, string Path,string typeName)
{
try
{
HttpWebRequest objHttpWebRequest;
HttpWebResponse objHttpWebResponse;
try
{
objHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);//send
objHttpWebResponse = (HttpWebResponse)objHttpWebRequest.GetResponse();//get
objHttpWebRequest.AllowAutoRedirect = true;
}
catch
{
return false;
}
string AbsoluteUri = objHttpWebResponse.ResponseUri.AbsoluteUri;//It may be Redirect so is necessary to use the AbsoluteUri
string Extend = AbsoluteUri.Substring(AbsoluteUri.LastIndexOf(".") + 1);
string GuidName = Guid.NewGuid().ToString();
Path = Path + GuidName.Substring(0, 1);
DirectoryInfo objDirectoryInfo = new DirectoryInfo(Path);
if (objDirectoryInfo.Exists)
{
}
else
{
objDirectoryInfo.Create();
}
string FullName = Path + "//" + GuidName + "." + Extend;
Stream objStream = objHttpWebResponse.GetResponseStream();
Byte[] buffer = new Byte[256];
int bufferSizeCount = objStream.Read(buffer, 0, 256);
FileStream objFileStream = new FileStream(FullName, FileMode.Create, FileAccess.Write);
int sumBufferSizeCount = 0;
while (bufferSizeCount > 0)
{
Application.DoEvents();
objFileStream.Write(buffer, 0, bufferSizeCount);//
bufferSizeCount = objStream.Read(buffer, 0, 256);//
sumBufferSizeCount += bufferSizeCount;//
this.Text = string.Format("[总进度{0}/{1}] 下载进度{2}文件:{3}K {4}",currentIndex,totalCount, Extend, sumBufferSizeCount / 1024,sumBufferSizeCount);
}
objStream.Close();
objFileStream.Close();
objHttpWebResponse.Close();
FileInfo objFileInfo = new FileInfo(FullName);
int FileSize = Convert.ToInt32(objFileInfo.Length / 1024);
if (typeName == "image")
{
ImageFileName = GuidName;
ImageExtend = Extend;
ImageFileSize = FileSize;
if (File.Exists(FullName))
{
System.Drawing.Image image = System.Drawing.Image.FromFile(FullName);
this.pictureBox1.Image = image;
}
}
else if(typeName == "file")
{
FileFileName = GuidName;
FileExtend = Extend;
FileFileSize = FileSize;
}
this.Refresh();
return true;
}
catch
{
return false;
}