JAVA FTPClient找不到路径

项目中使用FTP作为存储服务器时遇到问题,由于FTPClient不支持直接创建二级目录,导致上传或下载时报错。为解决此问题,创建了一个名为`createDirctorys`的函数,该函数通过遍历并创建所需路径的所有中间目录,确保FTP客户端可以访问到二级目录。调用此函数后,能正确处理包含多级目录的路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中,使用FTP做存储服务器,但是配置都没有错误,使用上传或下载到ftp的时候还是会报错。

断点显示这一行会抛出找不到文件夹的异常。

原因分析:传过来的descpath路径包含二级目录,类似于index/secendIndex这样,但FTPClien不支持创建二级目录,所以需要添加一个方法来创建路径。

添加一个创建函数:

 

public static FTPClient createDirctorys(FTPClient client,String desc) throws FTPIllegalReplyException, FTPAbortedException, FTPDataTransferException, IOException, FTPListParseException, FTPException {
		String[] Dirctorys = desc.split("/");
		for(int i = 0;i< Dirctorys.length;i++)
		{
			if (Dirctorys[i].equals(""))
			{
				continue;
			}
			//获取当前路径下所有的目录
			String[] files =  client.listNames();
			List<String> fileNameList = Arrays.asList(files);
			if (fileNameList.indexOf(Dirctorys[i]) != -1)
			{
				//如果存在,则切换
				client.changeDirectory(Dirctorys[i]);
			}else {
				//如果不存在,则创建后在切换
				client.createDirectory(Dirctorys[i]);
				client.changeDirectory(Dirctorys[i]);
			}
		}
		return client;
	}

循环创建所有目录,进入对应目录。之后将client对象返回即可。调用函数处也需要对应更改为:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值