ファイルとそのサブディレクトリを含むディレクトリを圧縮したかったのです。私はこれを行い、正常に動作しましたが、私は奇妙で興味深いファイル構造を取っています(少なくとも私はそのように見ています)。彼らはに示したとおり(すべてではない名前がexaclyあるが、私はこれを解凍するとき、私は、このファイル構造を参照してください。私はそれをクリックすると、私はこのような「空」のディレクトリを参照してください。Javaを使用してディレクトリを圧縮するときに異常な構造ファイルを取得する
これが作成されたファイルです下の画像):
|mantenimiento
|Carpeta_A
|File1.txt
|File2.txt
|Carpeta_B
|Sub_carpetaB
|SubfileB.txt
|Subfile1B.txt
|Subfile2B.txt
|File12.txt
私の問題は、何らかの形で、私は)私はzip圧縮したいディレクトリ(からzipppingていると私はそれがそこになりたいいけないので、私は解凍したときにどこのフォルダ「mantenimiento」であるということですちょうど作成された.zipファイル私はこのファイル構造(これは "mantenimiento"ディレクトリ内のファイルとディレクトリです):とそれ以外のものは、.zipファイルをクリックするとファイルを表示します。上記の画像とまったく同じです。
私のコードに何が間違っているのかわかりませんが、私は検索しましたが、私の問題が何であるかについての参考文献は見つかりませんでした。ここで
は私のコードです:
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();
}
}
はあなたたちが私に私が間違っているのか、私が行方不明です何かについてのヒントを与えることができることを望みます。
ありがとうございます。
Btw、私がこのメソッドに与えているディレクトリは決して使用されません。私が与えている他のパラメータは、C:\ mantenimientoディレクトリのすべてのファイルとディレクトリを含むファイルのリストです。
getZipFileNameメソッドを共有できますか? – Sanj
そのメソッドの実装は非常に簡単です:private String getZipFileName method() { \t String zipName; \t \t日付currentDate = newDate(); \t \t SimpleDateFormatフォーマッタ= SimpleDateFormat( "yyyy_MM_dd_HH-mm-ss"); \t \t zipName = formatter.format(currentDate); \t \t return zipName; \t } –