JAVA FTPClient找不到路径
项目中,使用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对象返回即可。调用函数处也需要对应更改为: