2012-08-14 69 views
1

我應該創建多個ftpproxyclient對象或單一一個就夠由於它扔FTP忙於處理文件錯誤?Java文件I/O -ftp忙中出錯讀取文件錯誤

ftp = new FtpProxyClient(this.getFTPServername(hrGroupName), this.ftpPort, 
       ftpUserName, getFTPPassword(hrGroupName)); 

ftp.setBinaryMode(); 

is = ftp.getFile(feedFileName); 

//做一些處理並檢查剩餘的文件:

for (int i = personHeadDTO.getValueN().intValueExact() + 2; i < sequenceNo.intValueExact(); i++) { 

          fileName = feedFileName 
            .replace(".", "_" + i + "."); 

下面的代碼拋出FTP是忙中出錯:

      if(ftp.isFileExists(fileName)){ 
           body1.append(fileName); 
          } 
          else{ 
           body1.append(fileName+" (Not Available in archive folder)."); 
          } 

          body1.append(newline); 
         } 
+0

如果服務器說它正忙,也許服務器很忙。您需要解決問題的根源,或者繼續嘗試,直到解決問題。 ;) – 2012-08-14 10:40:03

+0

我可以使用相同的FtpProxyClient對象來讀取所有的文件名.. – ashwinsakthi 2012-08-14 10:41:18

+0

一個ftp客戶端就是您所需要的。我建議嘗試使用首先不太常用的FTP服務器進行測試。 – 2012-08-14 10:42:00

回答

0

如果我刪除線:

ftp.changeDirectory("prxdpshr"); 

ftp.getFile(feedFileName); 

我越來越沒有錯誤,似乎有一個問題,當我得到一個文件,然後使用ftpclient對象做一些操作。

     String feedFileName="intusa35a.csv"; 
     ftp = new FtpProxyClient("server", 21, 
       "user", "pass"); 

     ftp.setBinaryMode(); 

     ftp.changeDirectory("prxdpshr"); 

     ftp.getFile(feedFileName); 

     ftp.changeDirectory("prxdpshr/archive_bkp"); 


     is=ftp.isFileExists("intusa35a.csv"); 

     is1=ftp.isFileExists("HR_Dorf_FeedFile.csv");   


     //lin = new LineNumberReader(new InputStreamReader(is)); 

     //lin1 = new LineNumberReader(new InputStreamReader(is1)); 

     String fileName=""; 
     StringBuffer body1=new StringBuffer(); 

     for (int i = 4 ; i < 10; i++) {     
      fileName = feedFileName 
        .replace(".", "_" + i + "."); 
      if(ftp.isFileExists(fileName)){ 
       body1.append(fileName); 
      } 
      else{ 
       body1.append(fileName+" (Not Available in archive folder)."); 
      } 

      body1.append("\n"); 
     } 

    } 

我已經使用了一個單獨的ftpclient檢查空虛。