关于c#连接ftp进行上传下载实现原理及代码

时间:2022-09-18 00:19:52

代码如下:


using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Net; 
using System.IO; 
namespace ftponload 

class Program 

static void Main(string[] args) 

//上传文件的方法 
onload("D://outPut.txt"); 
//下载文件的方法 
fload(); 

public static void onload(string file) 

//构造一个web服务器的请求对象 
FtpWebRequest ftp; 
//实例化一个文件对象 
FileInfo f = new FileInfo(file); 
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://192.168.0.150/" + f.Name)); 
//创建用户名和密码 
ftp.Credentials = new NetworkCredential("123", "123"); 
ftp.KeepAlive = false; 
ftp.Method = WebRequestMethods.Ftp.UploadFile; 
ftp.UseBinary = true; 
ftp.ContentLength = f.Length; 
int buffLength = 20480; 
byte[] buff = new byte[buffLength]; 
int contentLen; 
try 

//获得请求对象的输入流 
FileStream fs = f.OpenRead(); 
Stream sw = ftp.GetRequestStream(); 
contentLen = fs.Read(buff, 0, buffLength); 
while (contentLen != 0) 

sw.Write(buff, 0, contentLen); 
contentLen = fs.Read(buff, 0, buffLength); 

sw.Close(); 
fs.Close(); 

catch (Exception e) 

Console.WriteLine(e.Message); 


public static void fload() 

FtpWebRequest ftp; 
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://192.168.0.6/连接到你指定的文件")); 
//指定用户名和密码 
ftp.Credentials = new NetworkCredential("123", "123456"); 
WebResponse wr = ftp.GetResponse(); 
StreamReader sr = new StreamReader(wr.GetResponseStream(),System.Text.Encoding.Default); 
string s = sr.ReadLine(); 
while(s.Equals("")) 

s = sr.ReadLine();