我目前正試圖壓縮目錄中的所有文件。在Java中壓縮文件的問題
正在創建zip文件並且正在處理這些文件 - 但由於某些原因,這些文件沒有出現在zip文件中。
的代碼被用於完成這個任務如下:
public class FileZipper {
public void zipDir(String dir, String zipFileName) {
try{
File dirObj = new File(dir);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
Logger.info("Creating : " + zipFileName);
addDir(dirObj, out);
out.close();
}
catch (Exception e){
Logger.error(e, "Error zipping directory");
}
}
private void addDir(File dirObj, ZipOutputStream out) throws IOException {
File[] files;
if(!dirObj.isDirectory()){
files = new File[] { dirObj };
}
else{
files = dirObj.listFiles();
}
byte[] tmpBuf = new byte[1024];
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
addDir(files[i], out);
continue;
}
FileInputStream in = new FileInputStream(files[i].getAbsolutePath());
Logger.info(" Adding: " + files[i].getAbsolutePath());
out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
int len;
while ((len = in.read(tmpBuf)) > 0) {
out.write(tmpBuf, 0, len);
}
out.closeEntry();
in.close();
}
}
}
在審查日誌信息,該目錄中的文件被發現和處理,但創建的壓縮文件不包含任何數據。
任何有關這個問題的幫助將不勝感激。
感謝
請人重新打這個,郵編似乎完全無關,我 – 2011-04-04 12:05:37
我道歉,裏卡多 - 是英國(略幼稚),我已經躍升到的結論是,郵政編碼是與壓縮文件相關聯的代碼 - 不是您想要發送郵件的地方。 – 2011-04-04 12:18:45
沒問題,只是因爲我沒有足夠的聲望才能使用評論,否則我會自己「悄悄地」完成它:-) – 2011-04-04 14:14:19