C#獲取ftp上的資料夾、檔案目錄
阿新 • • 發佈:2019-01-27
C#連線ftp是比較麻煩的,特別是讀資料的時候
這裡是一行一行讀的。
資料夾和檔案差異就一行,直接貼
/// <summary> /// 獲取當前目錄下資料夾 /// </summary> /// <returns></returns> public string[] GetFilesDirList() { // string[] downloadFiles; try { StringBuilder result = new StringBuilder();//如果要修改字串而不建立新的物件,則可以使用 System.Text.StringBuilder 類。 FtpWebRequest ftp; ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(path));//"ftp://10.12.12.9"; ftp.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD); ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;//目錄 WebResponse response = ftp.GetResponse();//response為一個ftp的WebResponse StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);//讀入responses所建立的資料流 string line = reader.ReadLine();//輸入流中的下一行;如果到達了輸入流的末尾,則為空引用 while (line != null) { result.Append(line);//)Append 方法可用來將文字或物件的字串表示形式新增到由當前 StringBuilder 物件表示的字串的結尾處。 result.Append("\n"); line = reader.ReadLine(); textBox1.Text = line; } result.Remove(result.ToString().LastIndexOf("\n"), 1);//移除最後的換行》? reader.Close(); response.Close(); return result.ToString().Split('\n'); } catch (Exception ex) { throw ex; } } //=================================================== /// <summary> /// 獲取選中資料夾下的檔案 /// </summary> /// <returns></returns> public string[] GetFilesList()// { string url = path + "/" + SelectDir;//============和之前的資料夾唯一的不同就在於此,加上了資料夾的名字..我會優化的 try { StringBuilder result = new StringBuilder();//如果要修改字串而不建立新的物件,則可以使用 System.Text.StringBuilder 類。 FtpWebRequest ftp; ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(url)); ftp.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD); ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;//目錄 WebResponse response = ftp.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);//讀入responses所建立的資料流 string line = reader.ReadLine();//輸入流中的下一行;如果到達了輸入流的末尾,則為空引用 while (line != null) { result.Append(line);//)Append 方法可用來將文字或物件的字串表示形式新增到由當前 StringBuilder 物件表示的字串的結尾處。 result.Append("\n"); line = reader.ReadLine(); textBox1.Text = line; } result.Remove(result.ToString().LastIndexOf("\n"), 1);//移除最後的換行》? reader.Close(); response.Close(); return result.ToString().Split('\n'); } catch (Exception ex) { throw ex; } }