0

いくつかの画像が保存されたディレクトリを作成しました。ここで、単一の .zip ファイルとして圧縮するために、次のコードを使用しました。

private static void zipDir(String zipFileName, String dir) throws Exception {
    File dirObj = new File(dir);
    ZipOutputStream out = new ZipOutputStream(newFileOutputStream(zipFileName));
    addDir(dirObj, out);
    out.close();
}

static void addDir(File dirObj, ZipOutputStream out) throws IOException {
    File[] 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());
     System.out.println(" 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();
    }
  }

次のソースからこのコードを取得しました:

このコードを実行すると、指定したディレクトリに指定した名前の .zip ファイルが作成されますが、Android または PC で任意のソフトウェア (winzip など) を使用して開こうとすると、次のエラー メッセージが表示されます。ファイルが壊れているか、有効な zip ファイルではありません」

どんな助けでも大歓迎です。

4

2 に答える 2