一个批量下载其它机子图片的c#类(downmoon)
2008-07-08 13:47
405 查看
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.IO;
6
7
namespace DownloadImagebyXMLListFor2008
8
{
9
public class HttpDownLoad
10
{
11
/**//// <summary>
12
/// HttpWebRequest Property
13
/// </summary>
14
/// <param name="fileName"></param>
15
/// <param name="url"></param>
16
/// <param name="localPath"></param>
17
/// <param name="timeout"></param>
18
public static void DownloadOneFileByURL(string fileName, string url, string localPath, int timeout)
19
{
20
System.Net.HttpWebRequest request = null;
21
System.Net.HttpWebResponse response = null;
22
request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url + fileName);
23
request.Timeout = timeout;//8000 Not work ?
24
response = (System.Net.HttpWebResponse)request.GetResponse();
25
Stream s = response.GetResponseStream();
26
BinaryReader br = new BinaryReader(s);
27
//int length2 = Int32.TryParse(response.ContentLength.ToString(), out 0);
28
int length2 = Int32.Parse(response.ContentLength.ToString());
29
byte[] byteArr = new byte[length2];
30
s.Read(byteArr, 0, length2);
31
if (File.Exists(localPath + fileName))
{ File.Delete(localPath + fileName); }
32
if (Directory.Exists(localPath) == false)
{ Directory.CreateDirectory(localPath); }
33
FileStream fs = File.Create(localPath + fileName);
34
fs.Write(byteArr, 0, length2);
35
fs.Close();
36
br.Close();
37
}
38
/**//// <summary>
39
///Web Client Method ,only For Small picture
40
/// </summary>
41
/// <param name="fileName"></param>
42
/// <param name="url"></param>
43
/// <param name="localPath"></param>
44
public static void DownloadOneFileByURLWithWebClient(string fileName, string url, string localPath)
45
{
46
System.Net.WebClient wc = new System.Net.WebClient();
47
if (File.Exists(localPath + fileName))
{ File.Delete(localPath + fileName); }
48
if (Directory.Exists(localPath) == false)
{ Directory.CreateDirectory(localPath); }
49
wc.DownloadFile(url + fileName, localPath + fileName);
50
}
51
}
52
}
53
需要注意点:
第一 DownloadOneFileByURL方法,有时会下载不了文件,如果文件大于40K就更明显,DownloadOneFileByURLWithWebClient则无此问题。
第二 调用时请用Thread,给出一个示例
1
private void btnGet_Click(object sender, EventArgs e)
2
{
3
if (txtTempFile.Text.Trim().Length == 0)
4
{
5
ErrorStop("列表文件为空!"); return;
6
}
7
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(DownloadAll));
8
thread.Start();
9
}
10
private void DownloadAll()
11
{
12
List<string> ls = GetStringsByFile(txtTempFile.Text.Trim());
13
if (null != ls)
14
{
15
16
foreach (string s in ls)
17
{
18
try
19
{
20
//HttpDownLoad.DownloadOneFileByURL(s, Globals.HttpPreUrl, Globals.LocalPrePath, 8000000);
21
HttpDownLoad.DownloadOneFileByURLWithWebClient(s, Globals.HttpPreUrl, Globals.LocalPrePath);
22
}
23
catch
{ continue; }
24
}
25
}
26
}
相关文章推荐
- 下载图片封装一个工具类,搞定图片批量下载
- 用C#开发一个WinForm版的批量图片压缩工具
- 用C#开发一个WinForm版的批量图片压缩工具
- 异步网络编程之图片批量抓取下载(C#)
- C#实体图片下载与批量下载(自动保存功能)
- 一个无限批量下载百度美女图片的demo
- 一个用于批量下载网络图片的Shell脚本
- 下载图片封装一个工具类,搞定图片批量下载
- 用C#开发一个WinForm版的批量图片压缩工具
- 一个用于批量下载网络图片的Shell脚本
- 笨笨图片批量抓取下载 V0.2 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程]
- 用C#开发一个WinForm版的批量图片压缩工具
- C# 批量图片打包下载
- 一个批量下载图片的c#类(downmoon)
- 一个批量下载图片的c#类(downmoon)
- 写了一个批量下载页面以及页面引用图片的脚本
- C# 下载图片到本地
- asp.net+swfupload 多图片批量上传(附源码下载)
- 微信公众平台开发 批量生成及下载带参二维码图片
- 一个下载网页图片的shell脚本