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

复制代码 代码如下:

  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();

  }

  }

  }

  }