`
eimhee
  • 浏览: 2113850 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 解压rar文件

 
阅读更多

https://github.com/ShenZhenSogaaTech/sogaa-web/blob/b1ef0d8bd582bbf4e0e4fb7ad0e39657f2b307d0/src/main/java/com/sogaa/system/utils/ZipUtils.java

 

 

 

 maven依赖关系

 

		<!-- https://mvnrepository.com/artifact/com.github.junrar/junrar -->
		<dependency>
			<groupId>com.github.junrar</groupId>
			<artifactId>junrar</artifactId>
			<version>0.7</version>
		</dependency>

 

 

import com.github.junrar.Archive;
import com.github.junrar.exception.RarException;
import com.github.junrar.rarfile.FileHeader;
import org.junit.Test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;

/**
 * Created by on 2017/2/28.
 */
public class RarTest {

    /**
     * @param rarFileName rar file name
     * @param outFilePath output file path
     * @return success Or Failed
     * @throws Exception
     * @author zhuss
     */
    public static boolean unrar(String rarFileName, String outFilePath) throws Exception {

        boolean flag = false;
        try {
            Archive archive = new Archive(new File(rarFileName));
            if (archive == null) {
                throw new FileNotFoundException(rarFileName + " NOT FOUND!");
            }
            if (archive.isEncrypted()) {
                throw new Exception(rarFileName + " IS ENCRYPTED!");
            }
            List<FileHeader> files = archive.getFileHeaders();
            for (FileHeader fh : files) {
                if (fh.isEncrypted()) {
                    throw new Exception(rarFileName + " IS ENCRYPTED!");
                }
                String fileName = fh.getFileNameString();
                if (fileName != null && fileName.trim().length() > 0) {
                    String saveFileName = outFilePath + "\\" + fileName;
                    File saveFile = new File(saveFileName);
                    File parent = saveFile.getParentFile();
                    if (!parent.exists()) {
                        parent.mkdirs();
                    }
                    if (!saveFile.exists()) {
                        saveFile.createNewFile();
                    }
                    FileOutputStream fos = new FileOutputStream(saveFile);
                    try {
                        archive.extractFile(fh, fos);
                        fos.flush();
                        fos.close();
                    } catch (RarException e) {
                        if (e.getType().equals(RarException.RarExceptionType.notImplementedYet)) {
                        }
                    } finally {
                    }
                }
            }
            flag = true;
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }
        return flag;
    }

    @Test
    public void unrar() throws Exception {

        RarTest.unrar("/install/putty.rar", "/test");
    }

}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics