我想壓縮包含文件和子目錄的目錄。我做到了這一點,工作得很好,但我越來越不尋常和好奇的文件結構(至少我看到了這種方式)。使用Java壓縮目錄時獲取奇怪的結構文件
這是創建的文件:當我點擊它,我看到這樣一個「空」目錄:但是當我解壓這個我看到這個文件結構(不是所有的名稱是exacly,因爲它們是在顯示下圖):
|mantenimiento
|Carpeta_A
|File1.txt
|File2.txt
|Carpeta_B
|Sub_carpetaB
|SubfileB.txt
|Subfile1B.txt
|Subfile2B.txt
|File12.txt
我的問題在某種程度上是該文件夾「mantenimiento」就是我從(我要壓縮的目錄)zippping,我不希望它在那裏,所以當我解壓剛剛創建的.zip文件我想要它與這個文件結構(這是「mantenimiento」目錄內的文件和目錄):另一件事是當我點擊.zip文件我想看到文件nd目錄就像上面顯示的圖像一樣。
我不知道我的代碼有什麼問題,我搜索了但沒有找到我的問題可能的參考。
這裏是我的代碼:
private void zipFiles(List<File> files, String directory) throws IOException
{
ZipOutputStream zos = null;
ZipEntry zipEntry = null;
FileInputStream fin = null;
FileOutputStream fos = null;
BufferedInputStream in = null;
String zipFileName = getZipFileName();
try
{
fos = new FileOutputStream(File.separatorChar + zipFileName + EXTENSION);
zos = new ZipOutputStream(fos);
byte[] buf = new byte[1024];
int len;
for(File file : files)
{
zipEntry = new ZipEntry(file.toString());
fin = new FileInputStream(file);
in = new BufferedInputStream(fin);
zos.putNextEntry(zipEntry);
while ((len = in.read(buf)) >= 0)
{
zos.write(buf, 0, len);
}
}
}
catch(Exception e)
{
System.err.println("No fue posible zipear los archivos");
e.printStackTrace();
}
finally
{
in.close();
zos.closeEntry();
zos.close();
}
}
希望你們能給我什麼,我做錯了,或我錯過了什麼暗示。
非常感謝。
順便說一句,我給該方法的目錄從來沒有使用過。我給出的另一個參數是包含C:\ mantenimiento目錄中所有文件和目錄的文件列表。
您能分享getZipFileName方法嗎? – Sanj
該方法實現非常簡單:private String getZipFileName method() { \t String zipName; \t \t Date currentDate = newDate(); \t \t SimpleDateFormat formatter = SimpleDateFormat(「yyyy_MM_dd_HH-mm-ss」); \t \t zipName = formatter.format(currentDate); \t \t return zipName; \t } –