如何在另一个 zip 中创建 zip。我得到了 fileNotFoundException
Posted
技术标签:
【中文标题】如何在另一个 zip 中创建 zip。我得到了 fileNotFoundException【英文标题】:how to create zip inside the other zip.i got the fileNotFoundException 【发布时间】:2016-01-08 11:29:15 【问题描述】:如何在 zip 文件中创建 zip enter image description here
得到以下错误:
D:\sagar\my work\Package Maker\DirectoryStruct>java zipStructure
java.io.FileNotFoundException: Additional_Sub_Folder\Additional_file.zip (The sy
stem cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at zipStructure.main(zipStructure.java:22)
D:\sagar\my work\Package Maker\DirectoryStruct>
即 Additional_sub_folder 和 Digital_sub_folder。在 Additional_sub_folder 1 中创建了 zip 文件(Additional_file.zip),在该 zip 2 文件夹中创建了 xml 文件夹和 pdf 文件夹
在 Digital_sub_folder 中创建 Artical_sub_folder,并在 Artical_sub_folder 中创建 3 个新文件夹,即 xml 文件夹、pdf 文件夹和 Graphics 文件夹。我尝试在java代码下面但不能正常工作,请帮助创建这个结构。
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class zipStructure
public static void main(String[] args)
try
FileOutputStream fos = new FileOutputStream("main.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
zos.putNextEntry(new ZipEntry("Additional_Sub_Folder/"));
zos.putNextEntry(new ZipEntry("Digital_Sub_Folder/"));
FileOutputStream fos1 = new FileOutputStream("Additional_Sub_Folder/Additional_file.zip");
ZipOutputStream zos1 = new ZipOutputStream(fos1);
/*zos1.putNextEntry(new ZipEntry("Additional_file.zip/xml/"));
zos1.putNextEntry(new ZipEntry("Additional_file.zip/pdf/"));*/
zos1.putNextEntry(new ZipEntry("Additional_file1.zip/xml/"));
zos1.putNextEntry(new ZipEntry("Additional_file1.zip/pdf/"));
zos1.close();
fos1.close();
zos.close();
fos.close();
catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
public static void addToZipFile(String fileName, ZipOutputStream zos) throws FileNotFoundException, IOException
System.out.println("Writing '" + fileName + "' to zip file");
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);
ZipEntry zipEntry = new ZipEntry(fileName);
zos.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0)
zos.write(bytes, 0, length);
zos.closeEntry();
fis.close();
[1]: http://i.stack.imgur.com/TNA8b.jpg
【问题讨论】:
【参考方案1】:我没有遇到 zip-I/O 的问题,对于使用文件系统的每种类型的 I/O,我都有 FileNotFoundException。 对我有帮助的是,如果您使用 eclipse,则有“刷新项目”之类的功能或类似的功能。每次我遇到 I/O 问题时,它都有效。
【讨论】:
不适用于 eclipse,我在记事本上试了一下,并通过命令提示符运行 我现在唯一认识到的是,在 fos1 中你错过了路径中的 main.zip ......但我不确定那里是否需要它。 FileOutputStream fos1 = new FileOutputStream("MAIN1.zip???Additional_Sub_Folder/Additional_file.zip"); 你能检查提供图片吗,或者说我是你创建的那个结构我的朋友以上是关于如何在另一个 zip 中创建 zip。我得到了 fileNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章