y23335793 发表于 2015-5-28 12:13:11

asp.net实现FTP客户端

下载文件




[*]///   
[*]      /// 下载文件
[*]      ///
[*]      ///
[*]      private static void DownLoadFile(string filename)
[*]         {
[*]             FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://" + FtpAddress + "/" + filename);
[*]             req.Method = WebRequestMethods.Ftp.DownloadFile;
[*]             req.UseBinary = true;
[*]             req.UsePassive = true;
[*]             req.Credentials = new NetworkCredential(FtpUid, FtpPwd);
[*]            try
[*]             {
[*]                using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())
[*]               {
[*]                  string localfile = Path.Combine(LocalPath, filename);
[*]                     FileStream fs = new FileStream(localfile, FileMode.Create, FileAccess.Write);
[*]                  int buffer = 1024;//1K缓冲
[*]                  byte[] b = new byte;
[*]                  int i = 0;
[*]                     Stream stream = res.GetResponseStream();
[*]                  while ((i = stream.Read(b, 0, buffer)) > 0)
[*]                     {
[*]                         fs.Write(b, 0, i);
[*]                     }
[*]               }
[*]               Console.WriteLine(filename + " download!");
[*]               Log(filename + "下载成功");
[*]
[*]             }
[*]            catch (Exception ex)
[*]             {
[*]               Console.WriteLine(ex.ToString());
[*]               Log(ex.ToString());
[*]             }
[*]            finally
[*]             {
[*]
[*]             }
[*]         }

///          /// 下载文件         ///          ///          private static void DownLoadFile(string filename)         {             FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://" + FtpAddress + "/" + filename);             req.Method = WebRequestMethods.Ftp.DownloadFile;             req.UseBinary = true;             req.UsePassive = true;             req.Credentials = new NetworkCredential(FtpUid, FtpPwd);             try             {               using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())               {                     string localfile = Path.Combine(LocalPath, filename);                     FileStream fs = new FileStream(localfile, FileMode.Create, FileAccess.Write);                     int buffer = 1024;//1K缓冲                     byte[] b = new byte;                     int i = 0;                     Stream stream = res.GetResponseStream();                     while ((i = stream.Read(b, 0, buffer)) > 0)                     {                         fs.Write(b, 0, i);                     }               }               Console.WriteLine(filename + " download!");               Log(filename + "下载成功");            }             catch (Exception ex)             {               Console.WriteLine(ex.ToString());               Log(ex.ToString());             }             finally             {            }         }

获取文件列表



[*]///   
[*]      /// 获取FTP文件列表
[*]      ///
[*]      ///
[*]      private static List GetFileList()
[*]         {
[*]             List list = new List();
[*]             FtpWebRequest req = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + FtpAddress + FtpRemotePath));
[*]             req.Credentials = new NetworkCredential(FtpUid, FtpPwd);
[*]             req.Method = WebRequestMethods.Ftp.ListDirectory;
[*]             req.UseBinary = true;
[*]             req.UsePassive = true;
[*]            try
[*]             {
[*]                using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())
[*]               {
[*]                  using (StreamReader sr = new StreamReader(res.GetResponseStream()))
[*]                     {
[*]                        string s;
[*]                        while ((s = sr.ReadLine()) != null)
[*]                         {
[*]
[*]                           list.Add(s);
[*]                         }
[*]                     }
[*]               }
[*]             }
[*]            catch (Exception ex)
[*]             {
[*]               Console.WriteLine(ex.ToString());
[*]               Log("下载文件列表失败:");
[*]               Log(ex.ToString());
[*]             }
[*]            return list;
[*]
[*]         }

///          /// 获取FTP文件列表         ///          ///          private static List GetFileList()         {             List list = new List();             FtpWebRequest req = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + FtpAddress + FtpRemotePath));             req.Credentials = new NetworkCredential(FtpUid, FtpPwd);             req.Method = WebRequestMethods.Ftp.ListDirectory;             req.UseBinary = true;             req.UsePassive = true;             try             {               using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())               {                     using (StreamReader sr = new StreamReader(res.GetResponseStream()))                     {                         string s;                         while ((s = sr.ReadLine()) != null)                         {                              list.Add(s);                         }                     }               }             }             catch (Exception ex)             {               Console.WriteLine(ex.ToString());               Log("下载文件列表失败:");               Log(ex.ToString());             }             return list;          }

上传文件



[*]private static void UploadFile(string localFile)   
[*]         {
[*]             FileInfo fi = new FileInfo(localFile);
[*]             FileStream fs = fi.OpenRead();
[*]            long length = fs.Length;
[*]             FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://" + FtpAddress + FtpRemotePath + fi.Name);
[*]             req.Credentials = new NetworkCredential(FtpUid, FtpPwd);
[*]             req.Method = WebRequestMethods.Ftp.UploadFile;
[*]             req.UseBinary = true;
[*]             req.ContentLength = length;
[*]             req.Timeout = 10 * 1000;
[*]            try
[*]             {
[*]               Stream stream = req.GetRequestStream();
[*]
[*]                int BufferLength = 2048; //2K
[*]                byte[] b = new byte;
[*]                int i;
[*]                while ((i = fs.Read(b, 0, BufferLength)) > 0)
[*]               {
[*]                     stream.Write(b, 0, i);
[*]               }
[*]               stream.Close();
[*]               stream.Dispose();
[*]
[*]             }
[*]            catch (Exception ex)
[*]             {
[*]               Console.WriteLine(ex.ToString());
[*]             }
[*]
[*]         }
页: [1]
查看完整版本: asp.net实现FTP客户端