Я пытаюсь заархивировать следующую файловую структуру на моем компьютере,
parent/
parent/test1
parent/test1/image1.jpeg
parent/test2
Проблема в том, что я не могу сжать вышеупомянутую файловую структуру, используя java.У меня есть Google и я нашел следующий пример кода, но он только архивирует файлы только внутри данной папки.
File inFolder=new File("out");
File outFolder=new File("Out.zip");
ZipOutputStream out = new ZipOutputStream(new
BufferedOutputStream(new FileOutputStream(outFolder)));
BufferedInputStream in = null;
byte[] data = new byte[1000];
String files[] = inFolder.list();
for (int i=0; i<files.length; i++)
{
in = new BufferedInputStream(new FileInputStream
(inFolder.getPath() + "/" + files[i]), 1000);
out.putNextEntry(new ZipEntry(files[i]));
int count;
while((count = in.read(data,0,1000)) != -1)
{
out.write(data, 0, count);
}
out.closeEntry();
}
out.flush();
out.close();
В приведенном выше коде out - это папка, и нам нужны некоторые файлы. Также папка не можетбыть пустым, если это так, он генерирует исключение java.util.zip.ZipException или не может содержать любые подпапки, даже файлы внутри него (например, out \ newfolder \ image.jpeg), если это так, он генерирует исключение java.io.FileNotFoundException: out \ newfolder(Доступ запрещен).
В моем случае я создаю описанную выше файловую структуру, запрашивая базу данных иногда пустые папки в структуре папок.
Может кто-нибудь сказать мне решение?
Спасибо.