找回密码
 立即注册
首页 业界区 业界 C#通过FTP获取服务端文件

C#通过FTP获取服务端文件

国瑾瑶 2025-6-4 22:46:08
一、简介

   实际需求是在前端修改了配置文件后,由上位机统一分发给所有设备,因为下位机支持FTP协议,因此选用FTP来实现文件传输功能。二、准备工作

1、FTP服务搭建

  FTP服务端选用FileZilla Server,免费开源,简单好用,可以下载中文版的。下载地址:下载 - FileZilla中文网,也可以直接从网盘拿: https://pan.baidu.com/s/1Rss5J2I-3kqzc1qD0CbOcg?pwd=aufr 提取码: aufr。
2、安装配置

  安装比较简单,略过不提,主要是有几个配置要注意下(附上参考文档,按照这里面的来基本不会有问题:用FileZilla搭建FTP服务器及相关问题 - Better - SegmentFault 思否):
  编辑-设置-被动模式设置:
1.png

  编辑-设置-SSL/TLS设置:
2.png

   编辑-用户-General:
3.png

   编辑-用户-Shared folders:
4.png

   偶发出现550报错:
5.png

   解决方法:编辑-设置-其他,勾选允许下载:
6.png

  设置完成后记得启动服务。
 三、客户端连接

1、参数
  1. string host;//服务端url,如ftp://127.0.0.1
  2. string username;//用户名,如root
  3. string password;//密码,如123
  4. string remoteFilePath;//下载文件路径,如file.db
  5. string savePath;//保存文件路径,如D:\file.db
复制代码
2、代码
  1. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(new Uri(host), remoteFilePath));
  2. request.Method = WebRequestMethods.Ftp.DownloadFile;
  3. if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
  4.     request.Credentials = null;
  5. else
  6.     request.Credentials = new NetworkCredential(username, password);
  7. using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
  8. using (Stream responseStream = response.GetResponseStream())
  9. using (FileStream fileStream = new FileStream(savePath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))
  10. {
  11.     responseStream.CopyTo(fileStream);
  12. }
复制代码
 四、总结

  略。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册