這篇博客給大家補充一個方法,就是得到一個目錄下的所有文件名稱。在前端調用,大家寫一個遞歸去遍歷就可以了,我在這里就不在寫了。具體ftp下載的方法在我的另一篇博客里有,需要的可以去看一下。
/// <summary> /// 讀取文件目錄下所有的文件名稱,包括文件夾名稱 /// </summary> /// <param name="ftpAdd">傳過來的文件夾路徑</param> /// <returns>返回的文件或文件夾名稱</returns> public static string[] GetFtpFileList(string ftpAdd ) { string url = FTPCONSTR + ftpAdd; FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(new Uri(url)); ftpRequest.UseBinary = true; ftpRequest.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD); if (ftpRequest != null) { StringBuilder fileListBuilder = new StringBuilder(); //ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;//該方法可以得到文件名稱的詳細資源,包括修改時間、類型等這些屬性 ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;//只得到文件或文件夾的名稱 try { WebResponse ftpResponse = ftpRequest.GetResponse(); StreamReader ftpFileListReader = new StreamReader(ftpResponse.GetResponseStream(), Encoding.Default); string line = ftpFileListReader.ReadLine(); while (line != null) { fileListBuilder.Append(line); fileListBuilder.Append("@");//每個文件名稱之間用@符號隔開,便於前端調用的時候解析 line = ftpFileListReader.ReadLine(); } ftpFileListReader.Close(); ftpResponse.Close(); fileListBuilder.Remove(fileListBuilder.ToString().LastIndexOf("@"), 1); return fileListBuilder.ToString().Split('@');//返回得到的數組 } catch (Exception ex) { return null; } } else { return null; } }
FTP實現文件的下載功能請參考博客:http://www.cnblogs.com/zhenzaizai/p/7434669.html。