2012.06.13简单FTPClient

本文记录了一次FTP客户端的开发过程,包括实现文件上传与下载功能遇到的问题及解决方案。作者通过学习和实践,解决了多个关键BUG,并分享了开发过程中遇到的技术挑战。

由于课程要求,实验课老师要分小组做FTP的客户端和服务器,只要实现简单的上传和下载功能就可以了。在偷懒了2个星期之后,终于正式开始写代码了。

但是一直都没有认真地去写过什么东西,所以刚开始的时候从网上下载了一些人家写好了的程序运行,去看,但是因为太久没有接触代码,本来MFC也没有学好,

所以基本上都看不太明白。后来就之后google一些比较原理性的资料来参考。经过昨天晚上低效率地奋战,终于弄出了个简单的Client。实现了上传文件的功能。

但是有不少BUG,下午又看了一些材料,开始写下载部分功能。终于,基本上实现了功能,但是有很多bug。就连正常的运行有时候都有问题。



BUG1.如果用户名错误,或者想使用匿名用户登录的时候,会错误,程序会崩溃



BUG2,下载文件的时候,下载文件成功了,但是会弹出错误窗口


BUG3.下载文件的时候文件名要重新修改,不然会按照listbox上的。FTP://XXXX.XX.XX.XXABC.doc  这个样子,然后保存的时候就会提示存在文件(其实不存在)


以上是比较大的BUG吧。本来还想着今晚继续把它给修改一下,把BUG给弄了,但是。。。。已经不需要了。和另外一同学商量的,决定明天还是用别人的东西,因为服务器端我们都没有弄。

所以今晚的主要任务还是把人家写的东西给认真地看一遍,稍微地进行修改一下。。还是没有接触过的C#..希望没有问题吧。

### Java 中使用 FTPClient 类的 `retrieveFile` 方法 在 Java 的 Apache Commons Net 库中,`FTPClient` 是用于处理文件传输协议 (FTP) 操作的一个重要类。`retrieveFile(String remote, OutputStream local)` 方法允许从远程服务器下载文件到本地系统。 #### 使用 `retrieveFile` 下载文件的例子 下面是一个完整的例子,展示了如何连接到 FTP 服务器并使用 `retrieveFile` 方法来获取远程文件: ```java import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class FtpDownloadExample { public static void main(String[] args) { String server = "ftp.example.com"; int port = 21; String user = "username"; String pass = "password"; FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(server, port); ftpClient.login(user, pass); ftpClient.enterLocalPassiveMode(); // 设置被动模式 // 设置文件类型为二进制 ftpClient.setFileType(FTP.BINARY_FILE_TYPE); String remoteFilePath = "/path/to/remote/file.txt"; String localFilePath = "/path/to/local/directory/"; try (OutputStream outputStream = new FileOutputStream(localFilePath)) { boolean success = ftpClient.retrieveFile(remoteFilePath, outputStream); // 下载文件 if (success) { System.out.println("文件成功下载"); } else { System.out.println("文件下载失败"); } } } catch (IOException ex) { ex.printStackTrace(); } finally { try { if (ftpClient.isConnected()) { ftpClient.logout(); ftpClient.disconnect(); } } catch (IOException ex) { ex.printStackTrace(); } } } } ``` 此代码片段展示了一个基本的工作流程:建立与 FTP 服务器的连接、登录、设置数据传输方式(这里选择了被动模式)、指定要下载的远端路径以及保存至本机的目标位置,并最终关闭会话[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值