C#实现文件下载(转载)
2007-03-28 19:23
627 查看
private bool DownLoad(string downloadUrl,string savepath)
{
Stream responseStream = null;
FileStream fileStream = null;
StreamReader reader = null;
try
{
FtpWebRequest downloadRequest =(FtpWebRequest)WebRequest.Create(downloadUrl);
downloadRequest.Credentials = new NetworkCredential(txtuser.Text.Trim(), txtpwd.Text.Trim());
FtpWebResponse downloadResponse =(FtpWebResponse)downloadRequest.GetResponse();
responseStream = downloadResponse.GetResponseStream();
string fileName =Path.GetFileName(downloadRequest.RequestUri.AbsolutePath);
if (fileName.Length == 0)
{
reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
}
else
{
fileStream = File.Create(savepath+fileName);
byte[] buffer = new byte[1024];
int bytesRead;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
break;
fileStream.Write(buffer, 0, bytesRead);
}
}
return true;
}
catch (UriFormatException ex)
{
MessageBox.Show(ex.Message);
return false;
}
catch (WebException ex)
{
MessageBox.Show(ex.Message);
return false;
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
return false;
}
finally
{
if (reader != null)
reader.Close();
else if (responseStream != null)
responseStream.Close();
if (fileStream != null)
fileStream.Close();
}
}
{
Stream responseStream = null;
FileStream fileStream = null;
StreamReader reader = null;
try
{
FtpWebRequest downloadRequest =(FtpWebRequest)WebRequest.Create(downloadUrl);
downloadRequest.Credentials = new NetworkCredential(txtuser.Text.Trim(), txtpwd.Text.Trim());
FtpWebResponse downloadResponse =(FtpWebResponse)downloadRequest.GetResponse();
responseStream = downloadResponse.GetResponseStream();
string fileName =Path.GetFileName(downloadRequest.RequestUri.AbsolutePath);
if (fileName.Length == 0)
{
reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
}
else
{
fileStream = File.Create(savepath+fileName);
byte[] buffer = new byte[1024];
int bytesRead;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
break;
fileStream.Write(buffer, 0, bytesRead);
}
}
return true;
}
catch (UriFormatException ex)
{
MessageBox.Show(ex.Message);
return false;
}
catch (WebException ex)
{
MessageBox.Show(ex.Message);
return false;
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
return false;
}
finally
{
if (reader != null)
reader.Close();
else if (responseStream != null)
responseStream.Close();
if (fileStream != null)
fileStream.Close();
}
}
相关文章推荐
- 转载C#文件下载的实现
- C#下载文件(可显示进度)的方法实现
- [上传下载] C#FileUp文件上传类 (转载)
- 简单实现C#生成Excel 2007文件并下载
- 转载:C#实现对Word文件读写
- C#实现http多线程下载文件
- C# 实现在线软件自动升级自动下载更新文件
- [转载]winform自动更新并实现文件的批量异步下载
- 用C#(ASP.NET)怎么实现文件下载功能
- C# WinForm通过WebClient实现文件上传下载 (附源码)
- C#用HTTP协议实现多线程文件下载和断点续传
- 小试牛刀,文件下载.net(C#)的实现
- 第三页(客户端) :远程资源管理器 c#应用源代码,SERVICE + CLIENT 模式 可实现远程文件管理,下载功能
- C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)
- 【转载】使用jsp实现文件上传到服务器或者从服务器上下载文件到本地计算机完整说明版
- 在ASP.NET中实现压缩多个文件为.zip文件,实现批量下载功能 (转载并优化处理篇)
- C#怎么实现文件下载功能的四种方法
- C#实现文件下载的几种方法
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现