java中如何實(shí)現(xiàn) zip rar 7z 壓縮包解壓
java zip rar 7z 壓縮包解壓
7z和rar需要引入maven依賴(lài),zip使用java自帶的
<!-- 7z解壓依賴(lài) -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.tukaani</groupId>
<artifactId>xz</artifactId>
<version>1.5</version>
</dependency>
<!-- rar解壓依賴(lài) -- >
<dependency>
<groupId>net.sf.sevenzipjbinding</groupId>
<artifactId>sevenzipjbinding</artifactId>
<version>16.02-2.01</version>
</dependency>
<dependency>
<groupId>net.sf.sevenzipjbinding</groupId>
<artifactId>sevenzipjbinding-all-platforms</artifactId>
<version>16.02-2.01</version>
</dependency>編寫(xiě)解壓util工具類(lèi)
/**
* 文件解壓縮工具類(lèi)
*/
public class UnFileUtil {
/**
* rar解壓縮
* @param rarFile rar文件的全路徑
* @return 壓縮包中所有的文件
*/
@SuppressWarnings("resource")
public static Map<String, String> unRar(String rarFile) {
RandomAccessFile randomAccessFile = null;
IInArchive archive = null;
try {
File f = new File(rarFile);
randomAccessFile = new RandomAccessFile(f.getAbsolutePath(), "rw");
archive = SevenZip.openInArchive(ArchiveFormat.RAR,
new RandomAccessFileInStream(randomAccessFile));
String outPath = f.getAbsolutePath().substring(0, f.getAbsolutePath().indexOf("."));
File zdir = new File(outPath);
if (zdir.isDirectory()) {
zdir.delete();
}
zdir.mkdir();
int[] in = new int[archive.getNumberOfItems()];
for (int i = 0; i < in.length; i++) {
in[i] = i;
}
archive.extract(in, false, new ExtractCallback(archive,zdir.getAbsolutePath() + "/"));
//解壓后獲取壓縮包下全部文件列表
Map<String, String> zipFileMap = getFileNameList(outPath,"");
return zipFileMap;
} catch (FileNotFoundException | SevenZipException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(randomAccessFile != null) randomAccessFile.close();
if(archive != null) archive.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* 獲取壓縮包中的全部文件
* @param path 文件夾路徑
* @childName 每一個(gè)文件的每一層的路徑==D==區(qū)分層數(shù)
* @return 壓縮包中所有的文件
*/
private static Map<String, String> getFileNameList(String path, String childName) {
System.out.println("path:" + path + "---childName:"+childName);
Map<String, String> files = new HashMap<>();
File file = new File(path); // 需要獲取的文件的路徑
String[] fileNameLists = file.list(); // 存儲(chǔ)文件名的String數(shù)組
File[] filePathLists = file.listFiles(); // 存儲(chǔ)文件路徑的String數(shù)組
for (int i = 0; i < filePathLists.length; i++) {
if (filePathLists[i].isFile()) {
files.put(fileNameLists[i] + "==D==" + childName, path + File.separator + filePathLists[i].getName());
} else {
files.putAll(getFileNameList(path + File.separator + filePathLists[i].getName(), childName + "&" + filePathLists[i].getName()));
}
}
return files;
}
/**
* zip解壓縮
* @param zipFilePath zip文件的全路徑
* @param unzipFilePath 解壓后文件保存路徑
* @param includeZipFileName 解壓后文件是否包含壓縮包文件名,true包含,false不包含
* @return 壓縮包中所有的文件
*/
@SuppressWarnings("resource")
public static Map<String, String> unZip(String zipFilePath, String unzipFilePath, boolean includeZipFileName) throws Exception{
File zipFile = new File(zipFilePath);
//如果包含壓縮包文件名,則處理保存路徑
if(includeZipFileName){
String fileName = zipFile.getName();
if(StringUtils.isNotEmpty(fileName)){
fileName = fileName.substring(0,fileName.lastIndexOf("."));
}
unzipFilePath = unzipFilePath + File.separator + fileName;
}
//判斷保存路徑是否存在,不存在則創(chuàng)建
File unzipFileDir = new File(unzipFilePath);
if(!unzipFileDir.exists() || !unzipFileDir.isDirectory()){
unzipFileDir.mkdirs();
}
//開(kāi)始解壓
ZipEntry entry = null;
String entryFilePath = null, entryDirPath = "";
File entryFile = null, entryDir = null;
int index = 0, count = 0, bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
Charset gbk = Charset.forName("GBK");
ZipFile zip = new ZipFile(zipFile, gbk);
try {
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip.entries();
while (entries.hasMoreElements()) {
entry = entries.nextElement();
entryFilePath = unzipFilePath + File.separator + entry.getName();
entryFilePath = entryFilePath.replace("/", File.separator);
index = entryFilePath.lastIndexOf(File.separator);
if (index != -1) {
entryDirPath = entryFilePath.substring(0, index);
}
entryDir = new File(entryDirPath);
if (!entryDir.exists() || !entryDir.isDirectory()) {
entryDir.mkdirs();
}
entryFile = new File(entryFilePath);
//判斷當(dāng)前文件父類(lèi)路徑是否存在,不存在則創(chuàng)建
if(!entryFile.getParentFile().exists() || !entryFile.getParentFile().isDirectory()){
entryFile.getParentFile().mkdirs();
}
//不是文件說(shuō)明是文件夾創(chuàng)建即可,無(wú)需寫(xiě)入
if(entryFile.isDirectory()){
continue;
}
bos = new BufferedOutputStream(new FileOutputStream(entryFile));
bis = new BufferedInputStream(zip.getInputStream(entry));
while ((count = bis.read(buffer, 0, bufferSize)) != -1) {
bos.write(buffer, 0, count);
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
bos.flush();
bos.close();
bis.close();
zip.close();
}
Map<String, String> resultMap = getFileNameList(unzipFilePath, "");
return resultMap;
}
/**
* zip解壓縮
* @param zipFilePath zip文件的全路徑
* @param includeZipFileName 解壓后文件是否包含壓縮包文件名,true包含,false不包含
* @return 壓縮包中所有的文件
*/
@SuppressWarnings("resource")
public static Map<String, String> unZip(String zipFilePath, boolean includeZipFileName) throws Exception{
File zipFile = new File(zipFilePath);
String unzipFilePath = zipFilePath.substring(0, zipFilePath.lastIndexOf(File.separator));
//如果包含壓縮包文件名,則處理保存路徑
if(includeZipFileName){
String fileName = zipFile.getName();
if(StringUtils.isNotEmpty(fileName)){
fileName = fileName.substring(0,fileName.lastIndexOf("."));
}
unzipFilePath = unzipFilePath + File.separator + fileName;
}
//判斷保存路徑是否存在,不存在則創(chuàng)建
File unzipFileDir = new File(unzipFilePath);
if(!unzipFileDir.exists() || !unzipFileDir.isDirectory()){
unzipFileDir.mkdirs();
}
//開(kāi)始解壓
ZipEntry entry = null;
String entryFilePath = null, entryDirPath = "";
File entryFile = null, entryDir = null;
int index = 0, count = 0, bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
Charset gbk = Charset.forName("GBK");
ZipFile zip = new ZipFile(zipFile, gbk);
try {
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip.entries();
while (entries.hasMoreElements()) {
entry = entries.nextElement();
entryFilePath = unzipFilePath + File.separator + entry.getName();
entryFilePath = entryFilePath.replace("/", File.separator);
index = entryFilePath.lastIndexOf(File.separator);
if (index != -1) {
entryDirPath = entryFilePath.substring(0, index);
}
entryDir = new File(entryDirPath);
if (!entryDir.exists() || !entryDir.isDirectory()) {
entryDir.mkdirs();
}
entryFile = new File(entryFilePath);
//判斷當(dāng)前文件父類(lèi)路徑是否存在,不存在則創(chuàng)建
if(!entryFile.getParentFile().exists() || !entryFile.getParentFile().isDirectory()){
entryFile.getParentFile().mkdirs();
}
//不是文件說(shuō)明是文件夾創(chuàng)建即可,無(wú)需寫(xiě)入
if(entryFile.isDirectory()){
continue;
}
bos = new BufferedOutputStream(new FileOutputStream(entryFile));
bis = new BufferedInputStream(zip.getInputStream(entry));
while ((count = bis.read(buffer, 0, bufferSize)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
bos.close();
bis.close();
}
}catch (Exception e){
e.printStackTrace();
}finally {
zip.close();
}
Map<String, String> resultMap = getFileNameList(unzipFilePath, "");
return resultMap;
}
/**
* 7z解壓縮
* @param z7zFilePath 7z文件的全路徑
* @return 壓縮包中所有的文件
*/
public static Map<String, String> un7z(String z7zFilePath){
String un7zFilePath = ""; //壓縮之后的絕對(duì)路徑
SevenZFile zIn = null;
try {
File file = new File(z7zFilePath);
un7zFilePath = file.getAbsolutePath().substring(0, file.getAbsolutePath().lastIndexOf(".7z"));
zIn = new SevenZFile(file);
SevenZArchiveEntry entry = null;
File newFile = null;
while ((entry = zIn.getNextEntry()) != null){
//不是文件夾就進(jìn)行解壓
if(!entry.isDirectory()){
newFile = new File(un7zFilePath, entry.getName());
if(!newFile.exists()){
new File(newFile.getParent()).mkdirs(); //創(chuàng)建此文件的上層目錄
}
OutputStream out = new FileOutputStream(newFile);
BufferedOutputStream bos = new BufferedOutputStream(out);
int len = -1;
byte[] buf = new byte[(int)entry.getSize()];
while ((len = zIn.read(buf)) != -1){
bos.write(buf, 0, len);
}
bos.flush();
bos.close();
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (zIn != null)
zIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Map<String, String> resultMap = getFileNameList(un7zFilePath, "");
return resultMap;
}
public static void main(String[] args) {
try {
un7z("C:\\Users\\Admin\\Desktop\\1716F0190017.7z");
} catch (Exception e) {
e.printStackTrace();
}
}
}java常見(jiàn)壓縮包解壓工具類(lèi)(支持:zip、7z和rar)
pom依賴(lài)
? ? ? ? <groupId>org.apache.commons</groupId> ? ? ? ? <artifactId>commons-compress</artifactId> ? ? ? ? <version>1.9</version> ? ? </dependency> ? ? <dependency> ? ? ? ? <groupId>org.tukaani</groupId> ? ? ? ? <artifactId>xz</artifactId> ? ? ? ? <version>1.5</version> ? ? </dependency> ? ? <!-- rar解壓依賴(lài) --> ? <dependency> ? ? ? <groupId>net.sf.sevenzipjbinding</groupId> ? ? ? <artifactId>sevenzipjbinding</artifactId> ? ? ? <version>16.02-2.01</version> ? </dependency> ? <dependency> ? ? ? <groupId>net.sf.sevenzipjbinding</groupId> ? ? ? <artifactId>sevenzipjbinding-all-platforms</artifactId> ? ? ? <version>16.02-2.01</version> ? </dependency>
工具類(lèi)實(shí)現(xiàn)
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import com.github.yulichang.common.support.func.S;
import com.onemap.business.web.resultsCheck.service.impl.ResultPackageReportServiceImpl;
import com.onemap.common.utils.StringUtils;
import net.sf.sevenzipjbinding.*;
import net.sf.sevenzipjbinding.impl.RandomAccessFileInStream;
import net.sf.sevenzipjbinding.simple.ISimpleInArchive;
import net.sf.sevenzipjbinding.simple.ISimpleInArchiveItem;
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry;
import org.apache.commons.compress.archivers.sevenz.SevenZFile;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.LongFunction;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* 文件解壓縮工具類(lèi)
*/
public class UnPagFileUtil {
private static final Logger log = LoggerFactory.getLogger(UnFileUtil.class);
/**
* rar解壓縮
* @param rarFile rar文件的全路徑
* @param outPath 解壓路徑
* @return 壓縮包中所有的文件
*/
public static void unRarZip7Z(String rarFile, String outPath) throws Exception {
if (rarFile.toLowerCase().endsWith(".zip")) {
unZip(rarFile, outPath, false);
} else if (rarFile.toLowerCase().endsWith(".rar")) {
unRar(rarFile, outPath, "");
} else if (rarFile.toLowerCase().endsWith(".7z")) {
un7z(rarFile, outPath);
}
}
/**
* rar解壓縮
* @param rarFile rar文件的全路徑
* @param outPath 解壓路徑
* @return 壓縮包中所有的文件
*/
private static String unRar(String rarFile, String outPath, String passWord) {
RandomAccessFile randomAccessFile = null;
IInArchive inArchive = null;
try {
// 第一個(gè)參數(shù)是需要解壓的壓縮包路徑,第二個(gè)參數(shù)參考JdkAPI文檔的RandomAccessFile
randomAccessFile = new RandomAccessFile(rarFile, "r");
if (StringUtils.isNotBlank(passWord)) {
inArchive = SevenZip.openInArchive(null, new RandomAccessFileInStream(randomAccessFile), passWord);
} else {
inArchive = SevenZip.openInArchive(null, new RandomAccessFileInStream(randomAccessFile));
}
ISimpleInArchive simpleInArchive = inArchive.getSimpleInterface();
for (final ISimpleInArchiveItem item : simpleInArchive.getArchiveItems()) {
final int[] hash = new int[]{0};
if (!item.isFolder()) {
ExtractOperationResult result;
final long[] sizeArray = new long[1];
File outFile = new File(outPath + File.separator+ item.getPath());
File parent = outFile.getParentFile();
if ((!parent.exists()) && (!parent.mkdirs())) {
continue;
}
if (StringUtils.isNotBlank(passWord)) {
result = item.extractSlow(data -> {
try {
IOUtils.write(data, new FileOutputStream(outFile, true));
} catch (Exception e) {
e.printStackTrace();
}
hash[0] ^= Arrays.hashCode(data); // Consume data
sizeArray[0] += data.length;
return data.length; // Return amount of consumed
}, passWord);
} else {
result = item.extractSlow(data -> {
try {
IOUtils.write(data, new FileOutputStream(outFile, true));
} catch (Exception e) {
e.printStackTrace();
}
hash[0] ^= Arrays.hashCode(data); // Consume data
sizeArray[0] += data.length;
return data.length; // Return amount of consumed
});
}
if (result == ExtractOperationResult.OK) {
log.error("解壓rar成功...." + String.format("%9X | %10s | %s", hash[0], sizeArray[0], item.getPath()));
} else if (StringUtils.isNotBlank(passWord)) {
log.error("解壓rar成功:密碼錯(cuò)誤或者其他錯(cuò)誤...." + result);
return "password";
} else {
return "rar error";
}
}
}
} catch (Exception e) {
log.error("unRar error", e);
return e.getMessage();
} finally {
try {
inArchive.close();
randomAccessFile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
/**
* 獲取壓縮包中的全部文件
* @param path 文件夾路徑
* @childName 每一個(gè)文件的每一層的路徑==D==區(qū)分層數(shù)
* @return 壓縮包中所有的文件
*/
private static Map<String, String> getFileNameList(String path, String childName) {
System.out.println("path:" + path + "---childName:"+childName);
Map<String, String> files = new HashMap<>();
File file = new File(path); // 需要獲取的文件的路徑
String[] fileNameLists = file.list(); // 存儲(chǔ)文件名的String數(shù)組
File[] filePathLists = file.listFiles(); // 存儲(chǔ)文件路徑的String數(shù)組
for (int i = 0; i < filePathLists.length; i++) {
if (filePathLists[i].isFile()) {
files.put(fileNameLists[i] + "==D==" + childName, path + File.separator + filePathLists[i].getName());
} else {
files.putAll(getFileNameList(path + File.separator + filePathLists[i].getName(), childName + "&" + filePathLists[i].getName()));
}
}
return files;
}
/**
* zip解壓縮
* @param zipFilePath zip文件的全路徑
* @param unzipFilePath 解壓后文件保存路徑
* @param includeZipFileName 解壓后文件是否包含壓縮包文件名,true包含,false不包含
* @return 壓縮包中所有的文件
*/
public static Map<String, String> unZip(String zipFilePath, String unzipFilePath, boolean includeZipFileName) throws Exception{
File zipFile = new File(zipFilePath);
//如果包含壓縮包文件名,則處理保存路徑
if(includeZipFileName){
String fileName = zipFile.getName();
if(StringUtils.isNotEmpty(fileName)){
fileName = fileName.substring(0,fileName.lastIndexOf("."));
}
unzipFilePath = unzipFilePath + File.separator + fileName;
}
//判斷保存路徑是否存在,不存在則創(chuàng)建
File unzipFileDir = new File(unzipFilePath);
if(!unzipFileDir.exists() || !unzipFileDir.isDirectory()){
unzipFileDir.mkdirs();
}
//開(kāi)始解壓
ZipEntry entry = null;
String entryFilePath = null, entryDirPath = "";
File entryFile = null, entryDir = null;
int index = 0, count = 0, bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
Charset gbk = Charset.forName("GBK");
ZipFile zip = new ZipFile(zipFile, gbk);
try {
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip.entries();
while (entries.hasMoreElements()) {
entry = entries.nextElement();
entryFilePath = unzipFilePath + File.separator + entry.getName();
entryFilePath = entryFilePath.replace("/", File.separator);
index = entryFilePath.lastIndexOf(File.separator);
if (index != -1) {
entryDirPath = entryFilePath.substring(0, index);
}
entryDir = new File(entryDirPath);
if (!entryDir.exists() || !entryDir.isDirectory()) {
entryDir.mkdirs();
}
entryFile = new File(entryFilePath);
//判斷當(dāng)前文件父類(lèi)路徑是否存在,不存在則創(chuàng)建
if(!entryFile.getParentFile().exists() || !entryFile.getParentFile().isDirectory()){
entryFile.getParentFile().mkdirs();
}
//不是文件說(shuō)明是文件夾創(chuàng)建即可,無(wú)需寫(xiě)入
if(entryFile.isDirectory()){
continue;
}
bos = new BufferedOutputStream(new FileOutputStream(entryFile));
bis = new BufferedInputStream(zip.getInputStream(entry));
while ((count = bis.read(buffer, 0, bufferSize)) != -1) {
bos.write(buffer, 0, count);
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
bos.flush();
bos.close();
bis.close();
zip.close();
}
Map<String, String> resultMap = getFileNameList(unzipFilePath, "");
return resultMap;
}
/**
* zip解壓縮
* @param zipFilePath zip文件的全路徑
* @param includeZipFileName 解壓后文件是否包含壓縮包文件名,true包含,false不包含
* @return 壓縮包中所有的文件
*/
public static Map<String, String> unZip(String zipFilePath, boolean includeZipFileName) throws Exception{
File zipFile = new File(zipFilePath);
String unzipFilePath = zipFilePath.substring(0, zipFilePath.lastIndexOf(File.separator));
//如果包含壓縮包文件名,則處理保存路徑
if(includeZipFileName){
String fileName = zipFile.getName();
if(StringUtils.isNotEmpty(fileName)){
fileName = fileName.substring(0,fileName.lastIndexOf("."));
}
unzipFilePath = unzipFilePath + File.separator + fileName;
}
//判斷保存路徑是否存在,不存在則創(chuàng)建
File unzipFileDir = new File(unzipFilePath);
if(!unzipFileDir.exists() || !unzipFileDir.isDirectory()){
unzipFileDir.mkdirs();
}
//開(kāi)始解壓
ZipEntry entry = null;
String entryFilePath = null, entryDirPath = "";
File entryFile = null, entryDir = null;
int index = 0, count = 0, bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
Charset gbk = Charset.forName("GBK");
ZipFile zip = new ZipFile(zipFile, gbk);
try {
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip.entries();
while (entries.hasMoreElements()) {
entry = entries.nextElement();
entryFilePath = unzipFilePath + File.separator + entry.getName();
entryFilePath = entryFilePath.replace("/", File.separator);
index = entryFilePath.lastIndexOf(File.separator);
if (index != -1) {
entryDirPath = entryFilePath.substring(0, index);
}
entryDir = new File(entryDirPath);
if (!entryDir.exists() || !entryDir.isDirectory()) {
entryDir.mkdirs();
}
entryFile = new File(entryFilePath);
//判斷當(dāng)前文件父類(lèi)路徑是否存在,不存在則創(chuàng)建
if(!entryFile.getParentFile().exists() || !entryFile.getParentFile().isDirectory()){
entryFile.getParentFile().mkdirs();
}
//不是文件說(shuō)明是文件夾創(chuàng)建即可,無(wú)需寫(xiě)入
if(entryFile.isDirectory()){
continue;
}
bos = new BufferedOutputStream(new FileOutputStream(entryFile));
bis = new BufferedInputStream(zip.getInputStream(entry));
while ((count = bis.read(buffer, 0, bufferSize)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
bos.close();
bis.close();
}
}catch (Exception e){
e.printStackTrace();
}finally {
zip.close();
}
Map<String, String> resultMap = getFileNameList(unzipFilePath, "");
return resultMap;
}
/**
* 7z解壓縮
* @param z7zFilePath 7z文件的全路徑
* @param outPath 解壓路徑
* @return 壓縮包中所有的文件
*/
public static Map<String, String> un7z(String z7zFilePath, String outPath){
SevenZFile zIn = null;
try {
File file = new File(z7zFilePath);
zIn = new SevenZFile(file);
SevenZArchiveEntry entry = null;
File newFile = null;
while ((entry = zIn.getNextEntry()) != null){
//不是文件夾就進(jìn)行解壓
if(!entry.isDirectory()){
newFile = new File(outPath, entry.getName());
if(!newFile.exists()){
new File(newFile.getParent()).mkdirs(); //創(chuàng)建此文件的上層目錄
}
OutputStream out = new FileOutputStream(newFile);
BufferedOutputStream bos = new BufferedOutputStream(out);
int len = -1;
byte[] buf = new byte[(int)entry.getSize()];
while ((len = zIn.read(buf)) != -1){
bos.write(buf, 0, len);
}
bos.flush();
bos.close();
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (zIn != null) {
zIn.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Map<String, String> resultMap = getFileNameList(outPath, "");
return resultMap;
}
public static void main(String[] args) {
try {
String inputFile = "E:\\新建文件夾 (2)\\壓縮測(cè)試.zip";
String inputFile2 = "E:\\新建文件夾 (2)\\紅光村批復(fù).rar";
String inputFile3 = "E:\\新建文件夾 (2)\\壓縮測(cè)試.7z";
String destDirPath = "E:\\新建文件夾\\zip";
String destDirPath2 = "E:\\新建文件夾\\rar";
String destDirPath3 = "E:\\新建文件夾\\7z";
String suffix = inputFile.substring(inputFile.lastIndexOf("."));
//File zipFile = new File("E:\\新建文件夾 (2)\\壓縮測(cè)試.7z");
//un7z(inputFile3, destDirPath3);
//unZip(inputFile, destDirPath, false);
unRar(inputFile2, destDirPath2, "");
} catch (Exception e) {
e.printStackTrace();
}
}
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中使用JdbcTemplate訪(fǎng)問(wèn)Oracle數(shù)據(jù)庫(kù)的案例詳解
JdbcTemplate是Spring框架中的一個(gè)核心類(lèi),用于簡(jiǎn)化Java應(yīng)用程序與關(guān)系型數(shù)據(jù)庫(kù)的交互操作,本文給大家介紹SpringBoot中使用JdbcTemplate訪(fǎng)問(wèn)Oracle數(shù)據(jù)庫(kù)的方法,感興趣的朋友跟隨小編一起看看吧2023-10-10
java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式舉例
這篇文章主要給大家介紹了關(guān)于java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式,在Java中可以使用許多庫(kù)將對(duì)象轉(zhuǎn)換為JSON字符串,其中最常用的是Jackson和Gson,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
java實(shí)現(xiàn)員工工資管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)員工工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
使用ehcache三步搞定springboot緩存的方法示例
本次內(nèi)容主要介紹基于Ehcache 3.0來(lái)快速實(shí)現(xiàn)Spring Boot應(yīng)用程序的數(shù)據(jù)緩存功能。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
Java面試突擊為什么要用HTTPS及它的優(yōu)點(diǎn)
這篇文章主要介紹了Java面試突擊為什么要用HTTPS及它的優(yōu)點(diǎn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
Java方法的參數(shù)傳遞機(jī)制實(shí)例詳解
這篇文章主要介紹了Java方法的參數(shù)傳遞機(jī)制,結(jié)合實(shí)例形式詳細(xì)分析了java方法參數(shù)傳遞機(jī)制原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
SpringBoot Admin健康檢查功能的實(shí)現(xiàn)
admin主要就是告訴運(yùn)維人員,服務(wù)出現(xiàn)異常,然后進(jìn)行通知(微信、郵件、短信、釘釘?shù)龋┛梢苑浅?焖偻ㄖ竭\(yùn)維人員,相當(dāng)報(bào)警功能,接下來(lái)通過(guò)本文給大家介紹SpringBoot Admin健康檢查的相關(guān)知識(shí),一起看看吧2021-06-06
@valid 無(wú)法觸發(fā)BindingResult的解決
這篇文章主要介紹了@valid 無(wú)法觸發(fā)BindingResult的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

