用到两个jar包,sevenzipjbinding.jar和sevenzipjbinding-AllWindows.jar。
在这里上传了,我本想把资源分设成0分的,但是上传的时候发现最低只能选1分,我也很无奈啊。
本文代码是在http://blog.csdn.net/xiongyingzhuantu/article/details/6407506的基础上做的修改。
参考的那篇博客的代码实际用的时候发现不能解压大文件,而且还有些别的问题,就改了一个。
原博说是能解压带密码的文件,但我实际上并没用到这个功能,password参数常年为空,所以如果解密有问题的话我也不知道怎么办。
修改的内容具体见注释,代码如下。
private static void unzipDirWithPassword(final String sourceZipFile, String destinationDir, final String password) {
RandomAccessFile randomAccessFile = null;
IInArchive inArchive = null;
try {
randomAccessFile = new RandomAccessFile(sourceZipFile, "r");
inArchive = SevenZip.openInArchive(null,
new RandomAccessFileInStream(randomAccessFile));
ISimpleInArchive simpleInArchive = inArchive.