作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要压缩 zip(tar、gz、7z 等)文件中的目录。没关系,但我需要创建相互连接的多部分 zip 文件(如 file1.part1.zip、file1.part2.zip)
我如何在 java 中创建多部分 zip 文件?每个部分都必须有最大大小限制。
最佳答案
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();
}
}
关于java - 如何在 java 中创建多部分压缩的 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18590362/
我是一名优秀的程序员,十分优秀!