欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java調(diào)用7zip解壓壓縮包的實(shí)例

 更新時(shí)間:2017年09月26日 09:12:43   作者:李愛戴  
下面小編就為大家?guī)硪黄猨ava調(diào)用7zip解壓壓縮包的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前言

最近的項(xiàng)目中需要用到解壓縮包的功能,客戶給出的壓縮包的格式主要是rar和zip,因此就打算使用java調(diào)用7zip的命令行進(jìn)行解壓文件,本文主要記錄一下實(shí)現(xiàn)的過程以及其中遇到的問題。

7zip命令行

7z <command> [<switches>...] <archive_name> [<file_names>...][<@listfiles...>]

7z的commands中包含添加文件到壓縮包、從壓縮包中刪除文件以及提取文件等等多個(gè)命令,在這里我就不多贅述,有興趣的可以在7zip的安裝目錄使用cmd運(yùn)行7z.exe查看具體的命令。

今天我們要做的就是使用密碼將壓縮包中的文件提取出來,具體的命令如下:

7z x 壓縮文件源路徑 -o要解壓的路徑 -aoa -bse1 -p密碼

• x : 表示從壓縮包中提取文件

• -aoa : ao表示覆蓋模式,最后的a表示直接覆蓋現(xiàn)有文件而不需要任何提示

• -bs < o|e|p > < 0|1|2 >:set output stream for output/error/progress line

-bs命令其實(shí)我沒有太明白,字面的意思大概是說為輸出/錯(cuò)誤/進(jìn)程行設(shè)置輸出流,如果不設(shè)置-bse1屬性,當(dāng)解壓縮出現(xiàn)錯(cuò)誤,例如文件找不到時(shí),錯(cuò)誤提示就會(huì)出現(xiàn)在cmd窗口中而不是生成的log文件中,因此必須加上-bse1命令

java通過cmd調(diào)用7zip解壓

String filePath = "F:\\test\\新建 文本 文檔.rar";
//將文件名稱中的所有空格都替換為帶有雙引號(hào)的空格
filePath = filePath.replaceAll(" ", "\" \""); 

String command = "cmd /c start /B D:/工具/7zip/7-Zip/7z.exe x "+filePath+" -oF:/test/ -aoa -bse1 -p123 >F:/test/1.txt";
System.out.println(command);
Runtime.getRuntime().exec(command);

cmd命令解釋

• cmd /c start 7z.exe 表示會(huì)啟動(dòng)7z來執(zhí)行后面的命令,7z啟動(dòng)以后原來的cmd窗口會(huì)關(guān)閉

• cmd /k start 7z.exe 表示會(huì)啟動(dòng)7z來執(zhí)行后面的命令,7z啟動(dòng)以后原來的cmd窗口不會(huì)關(guān)閉

• /B 表示啟動(dòng)應(yīng)用程序,但是并不創(chuàng)建新的窗口

通過以上的代碼就可以解壓完成壓縮包文件,如果要知道解壓的密碼是否正確或者壓縮包是否損壞等信息,可以通過獲取生成txt日志文件的內(nèi)容來得知,這個(gè)不在本篇范圍之后,后續(xù)再說。

遇到的問題

7z.exe文件路徑找不到

出現(xiàn)該問題是由于7zip的安裝路徑中存在空格

解決方案:

• 選擇7zip安裝路徑,不要安裝在有空格的路徑中

• 將路徑中的空格使用雙引號(hào)引起來,如C:“Program Files”\7-Zip或者“C:\Program Files\7-Zip”或者C:\Program“ ”Files\7-Zip

文件路徑中存在連續(xù)多個(gè)空格導(dǎo)致文件找不到

出現(xiàn)該問題是由于

Runtime.getRuntime().exec(command)

方法在執(zhí)行過程中,會(huì)將文件路徑中的多個(gè)連續(xù)空格轉(zhuǎn)換為單個(gè)空格,這種情況在文件全路徑外面加上雙引號(hào)也是不管用的

解決方案:

• 替換文件路徑中的空格,將每一個(gè)空格都替換為帶有雙引號(hào)的空格即可

以上這篇java調(diào)用7zip解壓壓縮包的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析

    你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析

    這篇文章主要介紹了你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java的Shiro框架認(rèn)證流程詳解

    Java的Shiro框架認(rèn)證流程詳解

    這篇文章主要介紹了Java的Shiro框架認(rèn)證流程詳解,Shiro 是一個(gè)功能強(qiáng)大和易于使用的安全框架,為開發(fā)人員提供一個(gè)直觀而全面的解決方案的認(rèn)證,授權(quán),加密,會(huì)話管理四大功能,需要的朋友可以參考下
    2024-01-01
  • Java開發(fā)完整短信驗(yàn)證碼功能的全過程

    Java開發(fā)完整短信驗(yàn)證碼功能的全過程

    利用短信驗(yàn)證碼進(jìn)行身份驗(yàn)證是目前互聯(lián)網(wǎng)眾多產(chǎn)品常用的一種方式,那么這種短信驗(yàn)證功能是如何實(shí)現(xiàn)的呢,下面這篇文章主要給大家介紹了關(guān)于Java開發(fā)完整短信驗(yàn)證碼功能的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • java 正則,object中兩個(gè)方法的使用(詳解)

    java 正則,object中兩個(gè)方法的使用(詳解)

    下面小編就為大家?guī)硪黄猨ava 正則,object中兩個(gè)方法的使用(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java中實(shí)現(xiàn)兩個(gè)線程交替運(yùn)行的方法

    Java中實(shí)現(xiàn)兩個(gè)線程交替運(yùn)行的方法

    這篇文章主要介紹了Java中實(shí)現(xiàn)兩個(gè)線程交替運(yùn)行的方法,本文將給大家分享操作流程,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • 使用IDEA搭建ssm框架的詳細(xì)圖文教程

    使用IDEA搭建ssm框架的詳細(xì)圖文教程

    這篇文章主要介紹了使用IDEA搭建ssm框架的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot整合Xxl-Job的完整步驟記錄

    SpringBoot整合Xxl-Job的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于SpringBoot整合Xxl-Job的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Spring中DAO被循環(huán)調(diào)用的時(shí)候數(shù)據(jù)不實(shí)時(shí)更新的解決方法

    Spring中DAO被循環(huán)調(diào)用的時(shí)候數(shù)據(jù)不實(shí)時(shí)更新的解決方法

    這篇文章主要介紹了Spring中DAO被循環(huán)調(diào)用的時(shí)候數(shù)據(jù)不實(shí)時(shí)更新的解決方法,需要的朋友可以參考下
    2014-08-08
  • Java中DecimalFormat用法詳解

    Java中DecimalFormat用法詳解

    這篇文章主要為大家詳細(xì)介紹了Java中DecimalFormat的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Java8中如何通過方法引用獲取屬性名詳解

    Java8中如何通過方法引用獲取屬性名詳解

    這篇文章主要給大家介紹了關(guān)于Java8中如何通過方法引用獲取屬性名的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論