问题描述
我试图通过指定路径来检查FTP服务器中是否存在远程目录,但是当我提供有效的目录名称时,我的代码无法检查。 我想检查远程目录是否有效并且它不是文件。 这是我的代码:
public static boolean checkDirectoryExists(String file) throws IOException {
FTPFile[] files = myClient.listDirectories();
return Arrays.asList(files).contains(file);
}
1楼
只需使用一个循环即可自己检查每个人。
使用endsWith()检查相对目录路径的大小写。
public static boolean checkDirectoryExists(String file) throws IOException {
FTPFile[] files = myClient.listDirectories();
for (FTPFile file : files) {
if( file.getName().endsWith(file)) return true;
}
returns false;
}
2楼
我的技巧是使用listDirectories(directory) 。
- 如果目录存在但为空:返回一个长度为0的数组
- 如果目录不存在:也返回一个长度为0的数组!
所以我用listDirectories(directory +“ / ..”)
- 如果目录存在:返回一个至少包含一个元素的数组= directory
- 如果目录不存在:返回一个长度为0的数组。
所以做:
- FTPFile [] tf = listDirectories(directory +“ / ..”)
- 存在= tf!=空&& tf.length> 0
3楼
您只需要检查的就是ftpClient.cwd(“您的目录名称”)
这将返回整数值
250如果文件存在
要么
550如果文件不存在
例如,
if(ftpClient.cwd(uploadDirectoryPath)==550){
System.out.println("Directory Doesn't Exists");
}else if(ftpClient.cwd(uploadDirectoryPath)==250){
System.out.println("Directory Exists");
}else{
System.out.println("Unknown Status");
}