C# 實現訪問FTP服務器下載文件,獲取文件夾信息小記


最近因為要開發廣告制作工具,自動生成廣告流,需要獲取第三方服務器上的文件資源,經過摸索,從這次經歷中記錄下。

  FtpWebRequest reqFtp;

  WebResponse response = null;

//獲取文件夾信息

 reqFtp = (FtpWebRequest)WebRequest.Create(this.ftp);//ftp://IP:port/文件夾名1/文件夾名2/.../文件夾名

 reqFtp.UseBinary = true;

 reqFtp.KeepAlive = false;

 reqFtp.UsePassive = false;

 reqFtp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

 reqFtp.Credentials = new NetworkCredential(this.user, this.password);

 response = reqFtp.GetResponse();

//下載文件

reqFtp = (FtpWebRequest)FtpWebRequest.Create((this.ftp + srcFile));//ftp://IP:port/文件夾名1/文件夾名2/.../文件名

reqFtp.UseBinary = true;

reqFtp.KeepAlive = false;

reqFtp.UsePassive = false;

reqFtp.Credentials = new NetworkCredential(this.user, this.password);

reqFtp.Method = WebRequestMethods.Ftp.DownloadFile;

response = reqFtp.GetResponse();

注意:

1.此處將reqFtp.UsePassive = false;這是因為在下載文件或者獲取文件夾信息過程中出現讀取中斷而將其設置為false的,即出現“應PASV命令的請求,服務器返回了一個與FTP連接地址不同的地址”的異常。

2.由於本需求中還涉及到對日期的操作,因此特別要注意不同語言的操作系統的日期表示方式。

3.在需求中需要根據文件夾的修改日期進行讀取最新的數據,發現獲取文件夾的修改日期,當該文件夾中存在增刪文件的時候,文件夾的修改日期才會變更,而文件只是覆蓋是不會變更文件夾的修改日期的。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM