FTP檔案操作之上傳檔案
FTP檔案操作之下載檔案
FTP檔案操作之刪除檔案
FTP檔案操作之建立目錄
前面寫了採用ftp上傳檔案,有了上傳怎麼能夠沒有下載呢?如果只有上傳沒有下載,那上傳了也沒啥用了。所以今天就跟大家一起學習學習使用ftp下載檔案。
知道了怎麼上傳,那麼下載也就變得很簡單了,上傳是把檔案放到伺服器,而下載是把檔案從伺服器取過來。一個是從本地讀檔案,然後寫到伺服器;另一個是從伺服器讀檔案,然後寫到本地。基本原理就是這樣,下面我們看看具體的代碼:
/// <summary> /// FTP下載檔案 /// </summary> /// <param name="userId">ftp使用者名稱</param> /// <param name="pwd">ftp密碼</param> /// <param name="ftpPath">ftp檔案路徑</param> /// <param name="filePath">下載儲存路徑</param> /// <param name="fileName">ftp檔案名稱</param> /// <returns></returns> public string Download(string userId, string pwd, string ftpPath, string filePath, string fileName) { string sRet = "下載成功!"; FtpWebRequest reqFTP; try { FileStream outputStream = new FileStream(filePath + fileName, FileMode.Create); // 根據uri建立FtpWebRequest對象 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpPath + fileName)); // 指定執行什麼命令 reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; // 指定資料轉送類型 reqFTP.UseBinary = true; reqFTP.UsePassive = false; // ftp使用者名稱和密碼 reqFTP.Credentials = new NetworkCredential(userId, pwd); FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); // 把下載的檔案寫入流 Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; // 緩衝大小設定為2kb int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; // 每次讀檔案流的2kb readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0) { // 把內容從檔案流寫入 outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize); } //關閉兩個流和ftp串連 ftpStream.Close(); outputStream.Close(); response.Close(); } catch (Exception ex) { sRet=ex.Message; } //返回下載結果(是否下載成功) return sRet; }
以上代碼可以實現一個簡單的ftp下載的功能,只要在需要的地方調用此方法即可。代碼很簡單,功能很實用。
還有很多FTP的相關操作,以後會陸續跟大家分享,敬請期待!