【问题标题】:check if a directory exists using FTPClient使用 FTPClient 检查目录是否存在
【发布时间】:2012-03-12 15:42:19
【问题描述】:

我正在使用 FTPClient (org.​apache.​commons.​net.​ftp.​FTPClient) 将一些文件上传到 FTP 服务器。
我需要检查父目录是否存在;并在需要时创建它们。
如何使用 FTPClient 检查文件/目录是否存在?

谢谢

【问题讨论】:

    标签: java ftp-client apache-commons-net


    【解决方案1】:

    您需要 FTP STAT 命令。

    您可以使用此API call 来检查您的目标。

    【讨论】:

    • 嗨,谢谢;你能解释更多吗?这将返回 213-STAT 213 End. !我应该如何理解目录的存在?
    • 不幸的是,STAT 和 LIST 提供了相同的结果。我想如果你得到一个零长度的信息列表......你将不得不原谅一个事实,因为我在 FTP 协议中得到这个低级别已经有好几年了......如果在现有目录上使用 STAT 和 LIST 应该至少提供'.'和 '..' 作为有效目录上可用的目录。
    • API 调用是 FTPClient.getStatus(java.lang.String) - commons.apache.org/proper/commons-net/javadocs/api-3.6/org/…
    【解决方案2】:

    试试这个方法:

    public static boolean isExists(FTPClient ftpClient, String pathName)
    {
        ftpClient.getStatus(pathName);
        return FTPReply.isPositiveCompletion(ftpClient.getReplyCode());
    }
    

    【讨论】:

      【解决方案3】:

      试试这个代码,它对我有用。:

      FTPClient ftpClient=null;
              (ftpClient = new FTPClient()).connect("xxx.xxx.xxx.xxx");           
      
              if(ftpClient.login("user", "pass")){            
                  System.out.println(ftpClient.cwd("folder/subfolder"));    
      ***// if returns 250, folder exists  and if returned 550 folder does not exist***       
      
              }
      

      【讨论】:

        猜你喜欢
        • 2017-07-14
        • 2015-04-29
        • 2022-07-21
        • 2011-05-28
        • 2017-09-11
        • 1970-01-01
        • 2020-06-07
        • 1970-01-01
        • 2013-05-19
        相关资源
        最近更新 更多