是否有遞歸壓縮ZIP目錄的簡單方法,該目錄可能包含或不包含任何數量的文件和任意數目的子目錄級別?以遞歸方式壓縮包含任意數量的Java文件和子目錄的目錄?
3
A
回答
1
-2
10
public final class ZipFileUtil {
public static void zipDirectory(File dir, File zipFile) throws IOException {
FileOutputStream fout = new FileOutputStream(zipFile);
ZipOutputStream zout = new ZipOutputStream(fout);
zipSubDirectory("", dir, zout);
zout.close();
}
private static void zipSubDirectory(String basePath, File dir, ZipOutputStream zout) throws IOException {
byte[] buffer = new byte[4096];
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
String path = basePath + file.getName() + "/";
zout.putNextEntry(new ZipEntry(path));
zipSubDirectory(path, file, zout);
zout.closeEntry();
} else {
FileInputStream fin = new FileInputStream(file);
zout.putNextEntry(new ZipEntry(basePath + file.getName()));
int length;
while ((length = fin.read(buffer)) > 0) {
zout.write(buffer, 0, length);
}
zout.closeEntry();
fin.close();
}
}
}
}
+0
適用於我,但由於某種神祕原因,還會將「[email protected]」這樣的文件添加到存檔中。任何想法我做錯了什麼? – 2017-10-02 11:29:46
相關問題
- 1. 壓縮文件和目錄
- 2. 遞歸壓縮JavaScript文件的目錄到一個文件
- 3. 以遞歸方式讀取子目錄中的Android.mk文件
- 4. 包含,合併和壓縮目錄中的所有JavaScript文件?
- 5. Lotusscript搜索窗口目錄的子目錄和文件。遞歸?
- 6. Java壓縮文件的檢查目錄
- 7. 壓縮子目錄
- 8. 使用wget遞歸獲取一個包含任意文件的目錄
- 9. C目錄和子目錄遞歸
- 10. 如何壓縮和解壓縮包含相同目錄結構的文件
- 11. 批量使文件名中包含子目錄的目錄
- 12. 螞蟻中的壓縮任務 - 包含空的和非空的子目錄
- 13. 重命名目錄和一些包含的文件/子目錄
- 14. 刪除包含非空子目錄和文件的目錄
- 15. groovy壓縮包含正在使用的文件的目錄
- 16. 保持目錄和所有子目錄遞歸除了文件
- 17. 在Java中解壓縮包含多個文件和目錄的7zip存檔
- 18. 水珠,包括當前目錄和遞歸子目錄
- 19. 以遞歸方式更改目錄中的文件名稱
- 20. 以遞歸方式列出目錄中的文件 - python
- 21. 以遞歸方式更改目錄中文件的權限
- 22. 下載整個目錄(包含文件和子目錄)
- 23. 如何以編程方式將目錄壓縮爲zip文件
- 24. Unix壓縮子目錄不包括父目錄
- 25. ZIP壓縮目錄和子目錄中的所有文件(* .txt)c#
- 26. 通過子目錄批量壓縮
- 27. 查找不包含文件的目錄遞歸
- 28. 如何從不同的(子)目錄中壓縮java源文件?
- 29. 如何添加一個遞歸循環來刪除一個包含所有子目錄和文件的目錄?
- 30. 正在壓縮文件夾和Java,但不包括某些子目錄
我檢查阿帕奇百科全書壓縮,和它的不存在。奇; 「使一個zip文件不在這個目錄中」似乎很常見的功能。 – 2010-03-08 18:54:37
僅供參考:您可以在DotNetZip中使用'ZipFile.AddDirectory();' – Cheeso 2010-03-08 22:36:36