C# 使用ftp下載一個文件夾下的所有文件,包括子目錄文件夾


  這篇博客給大家補充一個方法,就是得到一個目錄下的所有文件名稱。在前端調用,大家寫一個遞歸去遍歷就可以了,我在這里就不在寫了。具體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。


免責聲明!

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



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