ftp连接以确定文件是否存在

时间:2014-10-06 09:47:16

标签: java file url connection

我正在尝试检查FTP中是否存在该文件。当与一个用户测试时似乎没问题。但是对于多个用户的情况,似乎抛出以下异常: 线程“main”中的异常sun.net.ftp.FtpProtocolException:欢迎消息:421。

下面是我们用来检查文件是否存在的代码,我们已经关闭了所有连接,但仍抛出sun.net.ftp.FtpProtocolException:欢迎消息:421。

 public boolean getFtpFileExists(String fileUrl)
  {
    URL theURL = null;
    InputStream inputStream = null;
    FtpURLConnection ftpUrlConn = null;
    boolean ftpFileExists = false;

    try
    {
      theURL = new URL(fileUrl);
      ftpUrlConn = (FtpURLConnection)theURL.openConnection();
      inputStream = ftpUrlConn.getInputStream();//calling this method will throw a 'FileNotFoundException' if doesn't exist

      ftpFileExists = true;
    }
    catch(FileNotFoundException fnfe)
    {
      ftpFileExists = false;
    }
    catch(Exception e)
    {
      System.out.println(e.toString());
      ftpFileExists = false;//hmm, not sure really!
    }
    finally
    {
      //close inputStream & connection
      if(inputStream != null)
      {
        try
        {
          inputStream.close();
        }
        catch(IOException ioe)
        {
          System.out.println("Error closing input stream: "+ioe.getMessage());
        }
      }

      try
      {
        ftpUrlConn.close();
      }
      catch(Exception e)
      {
        System.out.println("Error closing ftpUrlConnection");
      }
    }

    return ftpFileExists;
  }

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以重新创建错误吗?

无论如何:

错误MSG:

  

421:服务不可用,关闭控制连接。这可能是一个   如果服务知道它必须关闭,则回复任何命令。

听起来可能需要在FTPServer上完成配置,而不是代码错误。