簡體   English   中英

如何檢查FTP服務器中是否存在遠程目錄?

[英]How do I check if a remote directory exists in FTP server?

我試圖通過指定路徑來檢查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");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM