java程序无法在system.why中创建文件夹?

时间:2015-12-17 06:14:48

标签: java

我正在研究项目,并在其中制作程序以在系统中创建文件夹。当我运行我的程序时,它会显示:

  

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;        
}

2 个答案:

答案 0 :(得分:1)

您需要确保父文件夹存在于您要创建文件的位置

您可以在尝试编写文件之前使用File(parent).mkdirs()

答案 1 :(得分:0)

您所拥有的代码执行

FileUtils.readFileToByteArray(somePath);

显然,那个文件就不存在了。因此,很可能将该文件写入所需的过程无效。

必须决定在这些情况下该怎么做。目前你失败整个附件生成的东西。也许你最好在这种情况下添加一个默认附件,其中包含一些文本“存储中未找到附件数据”或其他内容。