c# 從ftp上下載文件


工具推薦:

IIS7服務器管理工具是一款windows全系、Linux系統下鏈接並操控VPS、VNC、FTP等遠程服務器、雲服務器。
界面簡單明了,操作易上手,功能強大,支持批量導入服務器,並批量打開,多窗口化管理,除此之外,加載本地硬盤、硬盤映射、加載服務器的聲音,遠程聲卡讀取等,完全實現各類場景使用,對於FTP鏈接界面,朋友FTP定時上傳,定時下載(也可以說定時上傳下載 定時備份),對於經常使用FTP的小伙伴來說,非常適用。
工具支持自動更新,壓縮包只有7.62M,方便簡潔,一步到位。
下載地址:http://yczm.iis7.com/?tscc

 

 


 


private
void Button1_Click(object sender, EventArgs e) { string uri = "ftp://172.17.13.127/"; string username = "username"; string password = "pwd"; var list = FtplistFile(uri,username,password); string path = @"D:\Example"; foreach (var item in list) { Ftpdownloadfile(Path.Combine(uri, item), Path.Combine(path,item),username,password); } MessageBox.Show("success"); } private List<string> FtplistFile(string url,string username,string password) //get file name form ftp folder { FtpWebRequest listRequest = (FtpWebRequest)WebRequest.Create(url); listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; listRequest.Credentials = new NetworkCredential(username, password); List<string> lines = new List<string>(); using (FtpWebResponse listResponse = (FtpWebResponse)listRequest.GetResponse()) using (Stream listStream = listResponse.GetResponseStream()) using (StreamReader listReader = new StreamReader(listStream)) { while (!listReader.EndOfStream) { lines.Add(listReader.ReadLine()); } } List<string> name = new List<string>(); foreach (var line in lines) { string[] tokens = line.Split(new[] { ' ' }, 9, StringSplitOptions.RemoveEmptyEntries); string n = tokens[3]; name.Add(n); } return name; } private void Ftpdownloadfile(string to_uri,string path,string username,string password) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(to_uri); request.Method = WebRequestMethods.Ftp.DownloadFile; request.Credentials = new NetworkCredential(username, password); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { using (Stream responseStream = response.GetResponseStream()) { using (FileStream fs = new FileStream(path, FileMode.Create)) { byte[] buffer = new byte[102400]; int read = 0; do { read = responseStream.Read(buffer, 0, buffer.Length); fs.Write(buffer, 0, read); fs.Flush(); } while (!(read == 0)); fs.Flush(); fs.Close(); } } } }

 


免責聲明!

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



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