org.apache.commons.net.io.CopyStreamException:复制时捕获到IOException

时间:2012-02-21 05:17:36

标签: java

我正在尝试使用以下方法中的代码将我服务器中创建的一些文件复制到FTP。但奇怪的是我随机地得到了错误,我无法弄清楚发生了什么。

Exception =org.apache.commons.net.io.CopyStreamException: IOException caught while copying.

以下是我将文件复制到FTP的代码。

public void copyDumpsToFTP() throws SocketException, IOException
  {



      FTPClient f= new FTPClient();
      f.connect(dumpProperties.getProperty("ftpIPAddress"));
      boolean flag =f.login(dumpProperties.getProperty("ftpUser"),dumpProperties.getProperty("ftpPassword"));
      System.out.println(" is connected to FTP ::"+flag);

      // setting fileType to binary

      boolean isFileTypeChanged =f.setFileType(FTP.BINARY_FILE_TYPE);


      // System.out.println(" Is file type changed to binary :: "+isFileTypeChanged);
      // change working directory of FTP Server

      boolean isDirectoryChanged =f.changeWorkingDirectory(dumpProperties.getProperty("ftpDirectory"));

      System.out.println(" Is the FTP working directory Changed :: "+isDirectoryChanged);




      // to copy engineering dump from source to FTP

      InputStream inputFileEngg = new FileInputStream(new File(dumpNameEngineering));



      boolean isSavedEngg = f.storeFile(dumpProperties.getProperty("dumpNameOfEnggInFTP"), inputFileEngg);
      System.out.println("is Engineering dump File Saved in FTP Server :: "+isSavedEngg);
      System.out.println(" Engg Dump sucessfully Created and Saved in FTP...");


   // to copy correspondance dump from source to FTP

     InputStream inputFileCorr = new FileInputStream(new File(dumpNameCorrespondance));   

      boolean isSavedCorr = f.storeFile(dumpProperties.getProperty("dumpNameOfCorrInFTP"), inputFileCorr);
      System.out.println("is Correspondance File Saved in FTP Server :: "+isSavedCorr);
      System.out.println(" Correspondance Dump sucessfully Created and Saved in FTP...");

   // to copy tmg dump from source to FTP

       InputStream inputFileTmg = new FileInputStream(new File(dumpNameTmg));       

      boolean isSavedTmg = f.storeFile(dumpProperties.getProperty("dumpNameOfTmgInFTP"), inputFileTmg);
      System.out.println("is TMG File Saved in FTP Server :: "+isSavedTmg);
      System.out.println(" TMG Dump sucessfully Created and Saved in FTP...");




  }

程序正在执行,直到SOP声明Is the FTP working directory Changed :: true

后者如上所述抛出了错误。

2 个答案:

答案 0 :(得分:0)

您要更改的目录应存在于同一路径上,并且应具有正确的写入权限,以便FTP可以在其上进行写入。

这里...

boolean isDirectoryChanged =f.changeWorkingDirectory(dumpProperties.getProperty("ftpDirectory"));

答案 1 :(得分:0)

当磁盘空间不可用或磁盘引用超出时发生此错误。