如何检查FTP服务器中是否存在远程目录?

时间:2015-07-26 00:17:11

标签: java ftp apache-commons-net

我试图通过指定路径检查FTP服务器中是否存在远程目录,但是当我提供有效的目录名时,我的代码无法检查。我想检查远程目录是否有效且它不是文件。这是我的代码:

public static boolean checkDirectoryExists(String file) throws      IOException {
        FTPFile[] files = myClient.listDirectories();
return Arrays.asList(files).contains(file);
}

3 个答案:

答案 0 :(得分:0)

只需使用一个循环来自己检查每一个。使用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;
}

答案 1 :(得分:0)

我的诀窍是使用 listDirectories(目录)

  • 如果目录存在但为空:返回长度为0的数组
  • 如果目录不存在:返回长度= 0的数组!!!

所以我使用 listDirectories(目录+" /..")

  • 如果目录存在:返回一个至少包含一个元素=目录的数组
  • 如果目录不存在:返回长度为0的数组。

所以就这样做:

  • FTPFile [] tf = listDirectories(目录+" /..")
  • exists = tf!= null&& tf.length大于0

答案 2 :(得分:0)

您需要检查的只是ftpClient.cwd("您的目录名称")

这将返回整数值

250 - 如果文件存在

OR

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");
}