2015-12-17 80 views
0

我正在處理項目,並在其中創建程序以在系統中創建文件夾。當我運行我的程序它顯示:java程序無法在system.why中創建文件夾?

java.io.FileNotFoundException:文件 'E:\ PROGRAM 文件\ IBM \ SDP \ PROFIN \ EmailAttachment \ 30189 \ 31609 \ T0000021811.pdf' 並不 不存在

我的代碼是:

public EmailQueueAttachment[] get(Long emailQueueId)throws InvalidDAOArgumentException { 
    if (emailQueueId == null) { 
     throw new InvalidDAOArgumentException("Email Queue Id can not be null."); 
    } 
    EmailQueueAttachmentListHelper criteria = new EmailQueueAttachmentListHelper(); 
    criteria.setEmailQueueId(emailQueueId); 
    List<Model> emailQueueAttachmentList = getList(criteria, -1, -1).getCurrentPageData(); 
    if (emailQueueAttachmentList != null) { 
     EmailQueueAttachment[] attachments = (EmailQueueAttachment[]) emailQueueAttachmentList.toArray(new EmailQueueAttachment[emailQueueAttachmentList.size()]); 
     for(int i=0; i<attachments.length; i++){ 
      try { 
       attachments[i].setAttachmentContent(FileUtils.readFileToByteArray(new File(SystemUtil.getEmailAttachmentFolderName() + File.separator + emailQueueId + File.separator + attachments[i].getRecNo() + File.separator + attachments[i].getAttachmentName()))); 
      } catch (IOException e) { 
       e.printStackTrace(); 
       throw new DAOException(e); 
      } 
     } 
     return attachments; 
    } 
    return null;   
} 

回答

1

你需要確保父文件夾是否存在要在其中創建文件

你可以試圖寫文件

+0

嗯...首先我想upvote ...但後來我讀代碼,發現一個'readFileToByteArray()' - 沒有幫助在這裏創建父目錄... – Jan

0

你的代碼使用前File(parent).mkdirs()執行

FileUtils.readFileToByteArray(somePath); 

顯然,該文件是不存在。所以最有可能的是要求該文件到該位置的過程不起作用。

必須決定在這些情況下做什麼。目前你失敗整個附件生成的東西。也許你最好在這種情況下添加一個默認附件,並附上一些文本「存儲中未找到附件數據」或其他內容。

+0

謝謝你,我解決了我的問題 –

+0

以及那麼 - 你能分享你如何解決它,並相應地接受答案嗎? – Jan

+0

先生。我的閱讀文件和寫入文件內存區域不一樣 –