当前位置: 代码迷 >> java >> 如何检查FTP服务器中是否存在远程目录?
  详细解决方案

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

热度:78   发布时间:2023-07-17 20:14:51.0

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

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

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

我的技巧是使用listDirectories(directory)

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

所以我用listDirectories(directory +“ / ..”)

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

所以做:

  • FTPFile [] tf = listDirectories(directory +“ / ..”)
  • 存在= tf!=空&& tf.length> 0

您只需要检查的就是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");
}
  相关解决方案