如何透过C#操作FTP连线

首先利用pure-ftpd在Docker中,快速建立简易型FTP。
不知如何安装Docker,可以参考这篇。
安装指令:

docker run -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e FTP_USER_HOME=/home/bob -e FTP_USER_NAME=bob -e FTP_USER_PASS=12345 -e "PUBLICHOST=localhost" stilliard/pure-ftpd

开启档案总管,在位址栏输入ftp://localhost/后进入。
跳出对话视窗要求输入安装指令设定的帐号/密码。

下载档案:

建立一个txt,内容:成功接收自FTP回传的资料流字元。
手动丢到FTP,此时FTP就会有档案了:
http://img2.58codes.com/2024/20112573gYrjpEeu3Y.png
Program.cs

var fileName = "test.txt";// 建立跟FTP沟通的物件FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"ftp://localhost/{fileName}");request.Method = WebRequestMethods.Ftp.DownloadFile; // 输入帐号/密码登入FTP. request.Credentials = new NetworkCredential("bob", "12345");//建立物件接收FTP的回应FtpWebResponse response = (FtpWebResponse)request.GetResponse();//建立物件接收从FTP回应的资料流Stream responseStream = response.GetResponseStream();//建立物件读取资料流的字元StreamReader reader = new StreamReader(responseStream);Console.WriteLine(reader.ReadToEnd());reader.Close();response.Close();

执行结果:
http://img2.58codes.com/2024/20112573ay0zodrtwp.png

上传档案:

Program.cs

//欲建立在FTP的档案名称var fileName = "test.txt";FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"ftp://localhost/{fileName}");request.Method = WebRequestMethods.Ftp.UploadFile;request.Credentials = new NetworkCredential("bob", "12345");byte[] fileContents;//建立StreamReader物件读取实体档案,并转成byte阵列using (StreamReader sourceStream = new StreamReader(@"C:\test.txt")){    fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());}request.ContentLength = fileContents.Length;//将byte阵列写入Stream资料流using (Stream requestStream = request.GetRequestStream()){    requestStream.Write(fileContents, 0, fileContents.Length);}//建立FtpWebResponse物件接收从FTP回应的资料流using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()){    Console.WriteLine($"Upload File Complete, status {response.StatusDescription}");}

执行结果:
http://img2.58codes.com/2024/20112573nph7esXgqY.png
此时的FTP会多一个test1.txt:
http://img2.58codes.com/2024/20112573jOOzkuGste.png

参考资料:
How to: Download files with FTP | Microsoft Docs
How to: Upload files with FTP | Microsoft Docs


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章