我正在研究项目,并在其中制作程序以在系统中创建文件夹。当我运行我的程序时,它会显示:
java.io.FileNotFoundException:文件'E:\ Program Files \ 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;
}
答案 0 :(得分:1)
您需要确保父文件夹存在于您要创建文件的位置
您可以在尝试编写文件之前使用File(parent).mkdirs()
答案 1 :(得分:0)
您所拥有的代码执行
FileUtils.readFileToByteArray(somePath);
显然,那个文件就不存在了。因此,很可能将该文件写入所需的过程无效。
您必须决定在这些情况下该怎么做。目前你失败整个附件生成的东西。也许你最好在这种情况下添加一个默认附件,其中包含一些文本“存储中未找到附件数据”或其他内容。