public static void DownIMG(String uri, String path)
{
WebResponse response = null;
Stream reader = null;
FileStream writer = null;
try
{
WebRequest request = WebRequest.Create(uri);
request.Timeout = Timeout.Infinite;
response = request.GetResponse();
String type = response.ContentType;
if (type.StartsWith("image/png"))
{
path += ".png";
}
else
{
path += ".jpg";
}
reader = response.GetResponseStream();
writer = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
byte[] buff = new byte[512];
int c = 0; //实际读取的字节数
while ((c = reader.Read(buff, 0, buff.Length)) > 0)
{
writer.Write(buff, 0, c);
}
}
catch (Exception e)
{
throw e;//在这里抛出异常是可以的,finally里面的代码依然会执行,会先运行到这里,再运行finally,再运行调用该方法的try
}
finally
{
if (writer != null)
{
writer.Close();
writer.Dispose();
}
if (reader != null)
{
reader.Close();
reader.Dispose();
}
if (response != null)
{
response.Close();
}
}
}