C# FTP下载二进制文件
来源:互联网 发布:数据只显示万位整数 编辑:程序博客网 时间:2024/06/05 05:51
using System;
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace FTP_test2
{
public partial class Form1 : Form
{
FtpWebRequest request;
FtpWebResponse response;
string fileName = "";
StreamReader reader;
public Form1()
{
InitializeComponent();
}
//连接按钮
private void btn_connect_Click(object sender, EventArgs e)
{
//先清空列表框
listBox1.Items.Clear();
//对FTP的操作,使用FtpWebRequest类和FtpWebResponse类
request = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.98");
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential("user", "user");
response = (FtpWebResponse)request.GetResponse();
//再使用一个StreamReader类
reader = new StreamReader(response.GetResponseStream());
string filelist = reader.ReadToEnd();
string[] list = filelist.Split(new char[]{'\r','\n'},StringSplitOptions.RemoveEmptyEntries);
foreach(string i in list)
{
listBox1.Items.Add(i);
}
reader.Close();
response.Close();
}
//下载按钮
private void btn_down_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItem == null)
{
MessageBox.Show("please chose a file!");
return;
}
fileName = (string)listBox1.SelectedItem.ToString();
string url = "D://Client//" + fileName;
if(File.Exists(url))
{
if (MessageBox.Show("The location is already exit the" + fileName + ",Click OK will be covered!", "tooltip",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
{
return;
}
}
request = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.98/" + fileName);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("user", "user");
response = (FtpWebResponse)request.GetResponse();
byte[] bt = null;
bt = DownLoadFile();
if (bt != null)
{
FileStream stream = new FileStream(url,FileMode.Create);
stream.Write(bt, 0, bt.Length);
stream.Flush();
stream.Close();
}
MessageBox.Show(fileName + "download completed!");
/*
* //非二进制传输方式,文本下载后可以打开,但视频图片使用这种方式下载都会损坏
*
request = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.98/" + fileName);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("user", "user");
response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
reader = new StreamReader(responseStream);
StreamWriter writer = new StreamWriter(url);
writer.Write(reader.ReadToEnd());
writer.Close();
reader.Close();
MessageBox.Show(fileName + "download completed!");
*/
}
//二进制传输文件方式
public byte[] DownLoadFile()
{
try
{
Stream responseStream = response.GetResponseStream();
//将流内容写入字节数组
MemoryStream men = new MemoryStream(1024 * 500);
byte[] buffer = new byte[1024];
int bytesRead = 0;
int TotalByteRead = 0;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
TotalByteRead += bytesRead;
if (bytesRead == 0)
break;
men.Write(buffer, 0, bytesRead);
}
if (men.Length > 0)
{
return men.ToArray();
}
else
{
return null;
}
}
catch(Exception ep)
{
throw ep;
}
}
}
}
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace FTP_test2
{
public partial class Form1 : Form
{
FtpWebRequest request;
FtpWebResponse response;
string fileName = "";
StreamReader reader;
public Form1()
{
InitializeComponent();
}
//连接按钮
private void btn_connect_Click(object sender, EventArgs e)
{
//先清空列表框
listBox1.Items.Clear();
//对FTP的操作,使用FtpWebRequest类和FtpWebResponse类
request = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.98");
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential("user", "user");
response = (FtpWebResponse)request.GetResponse();
//再使用一个StreamReader类
reader = new StreamReader(response.GetResponseStream());
string filelist = reader.ReadToEnd();
string[] list = filelist.Split(new char[]{'\r','\n'},StringSplitOptions.RemoveEmptyEntries);
foreach(string i in list)
{
listBox1.Items.Add(i);
}
reader.Close();
response.Close();
}
//下载按钮
private void btn_down_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItem == null)
{
MessageBox.Show("please chose a file!");
return;
}
fileName = (string)listBox1.SelectedItem.ToString();
string url = "D://Client//" + fileName;
if(File.Exists(url))
{
if (MessageBox.Show("The location is already exit the" + fileName + ",Click OK will be covered!", "tooltip",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
{
return;
}
}
request = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.98/" + fileName);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("user", "user");
response = (FtpWebResponse)request.GetResponse();
byte[] bt = null;
bt = DownLoadFile();
if (bt != null)
{
FileStream stream = new FileStream(url,FileMode.Create);
stream.Write(bt, 0, bt.Length);
stream.Flush();
stream.Close();
}
MessageBox.Show(fileName + "download completed!");
/*
* //非二进制传输方式,文本下载后可以打开,但视频图片使用这种方式下载都会损坏
*
request = (FtpWebRequest)WebRequest.Create("ftp://192.168.0.98/" + fileName);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("user", "user");
response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
reader = new StreamReader(responseStream);
StreamWriter writer = new StreamWriter(url);
writer.Write(reader.ReadToEnd());
writer.Close();
reader.Close();
MessageBox.Show(fileName + "download completed!");
*/
}
//二进制传输文件方式
public byte[] DownLoadFile()
{
try
{
Stream responseStream = response.GetResponseStream();
//将流内容写入字节数组
MemoryStream men = new MemoryStream(1024 * 500);
byte[] buffer = new byte[1024];
int bytesRead = 0;
int TotalByteRead = 0;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
TotalByteRead += bytesRead;
if (bytesRead == 0)
break;
men.Write(buffer, 0, bytesRead);
}
if (men.Length > 0)
{
return men.ToArray();
}
else
{
return null;
}
}
catch(Exception ep)
{
throw ep;
}
}
}
}
0 0
- C# FTP下载二进制文件
- c# ftp 目录下载
- c# ftp读取下载
- FTP下载功能C#
- C# ftp 下载文件
- C# 遍历FTP文件夹/下载
- C# ftp 上传、下载、删除
- C# ftp上传和下载
- c#通过ftp下载文件
- C# ftp 上传、下载、删除
- c#通过ftp下载文件
- C# FTP下载的断点继传
- C#自带Ftp下载的例子
- C#自带Ftp下载的例子
- C# FTP 文件 文件夹操作 上传 下载
- C# FTP 文件 文件夹操作 上传 下载
- C#下的FTP上传和下载
- C# 实现 FTP 上传和下载功能
- 黑马程序员_JAVA_面向对象(二)
- jquery-ui的使用
- 图结构练习——判断给定图是否存在合法拓扑序列(拓扑排序判断环)
- Python 第一章 基础知识(1) 安装Python
- Js中的多条件排序,多列排序
- C# FTP下载二进制文件
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- Enumeration
- Photoshop脚本 > 图像的色调分离
- 运算符的各种尝试
- 简单的JAVA MVC框架模式--Java-servlet-JavaBean
- 《linux 命令行大全》读书笔记 第二,三章 导航与linux系统
- hdu 3785 大富翁
- GCC 各工具使用简介