当前位置:   article > 正文

关于FtpClient.listFiles()总是返回null的问题_ftpclient.listfiles返回空

ftpclient.listfiles返回空

问题:文件中有文件,但是调用FtpClient.listFiles(path);方法总是报错

解决办法:在读取文件之前加上ftpClient.enterLocalPassiveMode();这句话

  /**

     * 判断ftp服务器文件是否存在

     * @param path

     * @return

     * @throws IOException

     */

    public boolean existFile(String path) throws IOException {

        boolean flag = false;

        ftpClient.enterLocalPassiveMode();

        FTPFile[] ftpFileArr = ftpClient.listFiles(path);

        if (ftpFileArr.length > 0) {

            flag = true;

        }

        return flag;

    }

原因:

调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/255558
推荐阅读
相关标签
  

闽ICP备14008679号