由于sun.net.ftp.FtpClient本来是没有判断文件夹是否存在的函数的,当文件上传到ftp服务器指定的文件夹的时候就需要对该文件夹做一层判断,判断这个文件夹是否存在。
当我点进FtpClient源码的时候,我看到了这个
这里它是通过或者指定文件夹来返回一个文件对象的迭代器,所以就可以通过这个迭代器来判断指定的文件夹是否存在
具体代码:
public static boolean isDirExist(FtpClient ftpClient,String dir){
Iterator<FtpDirEntry> ftpDirEntryIterator =null;
try {
ftpDirEntryIterator = ftpClient.listFiles(dir);
} catch (FtpProtocolException | IOException e) {
e.printStackTrace();
}
return !(ftpDirEntryIterator.next() == null);
}
通过判断迭代器是否能获取到下一个元素来判断这个文件夹是否存在