2013-09-03 11 views
6

zip(tar、gz、7zなど)ファイル内のディレクトリを圧縮する必要があります。それは大丈夫ですが、私は(file1.part1.zip、file1.part2.zipのように)互いに接続された複数のzipファイルを作成する必要がありますJavaでマルチパート圧縮zipファイルを作成するには

Javaでmultipart zipファイルを作成するにはどうしたらいいですか? 各パーツには最大サイズ制限が必要です。これらの方法およびフローを使用して

答えて

8

Zip4jが分割zipファイルの作成をサポートリンクに行くことができます。ここでは、分割zipファイルを作成するためのサンプルです(Zip4j examples packageから採取したサンプル)

ZipFile.createZipFile(File sourceFile, ZipParameters parameters, boolean splitArchive, long splitLength) 

は、分割されたzipファイルを作成する方法です。この場合はboolean splitArchiveをtrueに設定する必要があります。あなたは、コード例は無用であるlong splitLength

import java.io.File; 
import java.util.ArrayList; 

import net.lingala.zip4j.core.ZipFile; 
import net.lingala.zip4j.exception.ZipException; 
import net.lingala.zip4j.model.ZipParameters; 
import net.lingala.zip4j.util.Zip4jConstants; 

public class CreateSplitZipFile { 

    public CreateSplitZipFile() { 

     try { 
      // Initiate ZipFile object with the path/name of the zip file. 
      ZipFile zipFile = new ZipFile("c:\\ZipTest\\CreateSplitZipFile.zip"); 

      // Build the list of files to be added in the array list 
      // Objects of type File have to be added to the ArrayList 
      ArrayList filesToAdd = new ArrayList(); 
      filesToAdd.add(new File("c:\\ZipTest\\sample.txt")); 
      filesToAdd.add(new File("c:\\ZipTest\\myvideo.avi")); 
      filesToAdd.add(new File("c:\\ZipTest\\mysong.mp3")); 

      // Initiate Zip Parameters which define various properties such 
      // as compression method, etc. 
      ZipParameters parameters = new ZipParameters(); 

      // set compression method to store compression 
      parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); 

      // Set the compression level. This value has to be in between 0 to 9 
      parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); 

      // Create a split file by setting splitArchive parameter to true 
      // and specifying the splitLength. SplitLenth has to be greater than 
      // 65536 bytes 
      // Please note: If the zip file already exists, then this method throws an 
      // exception 
      zipFile.createZipFile(filesToAdd, parameters, true, 10485760); 
     } catch (ZipException e) { 
      e.printStackTrace(); 
     } 
    } 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     new CreateSplitZipFile(); 
    } 

} 
-4

我々はより多くの説明のための

private long totalFileSize = 0L; /* In bytes */ 
private long totalNumberFilesSelected = 0L; /* Total number of files selected */ 
private int partitionSize; /* In MegaBytes */ 
private int partitionSizeInBytes = 100000000; /* defaulted to 100 MB */ 
private int compressionLevel = 9; /* defaults to 9 (best) */ 
private String saveFileBase = ""; /* Zip file to save as */ 
private ArrayList fileInfoList; 
private ArrayList fileIndices = new ArrayList(); 

private int computeNumberOfArchives() 
private void createZipArchive() 
private void doZip() 

zipファイルをすることができますuが

http://www.codeproject.com/Articles/25453/Automating-Multipart-Zip-File-Creation

+2

介して各分割ファイル(Z01、Z02、など)の最大ファイルサイズを設定することができます。この記事はC#に関するものです。ソースは登録されておらず、登録後にのみダウンロードすることができます。 – Vadzim

関連する問題