java中怎么利用7zip對(duì)壓縮包進(jìn)行解壓的?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括城東網(wǎng)站建設(shè)、城東網(wǎng)站制作、城東網(wǎng)頁(yè)制作以及城東網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,城東網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到城東省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
7zip命令行
7z <command> [<switches>...] <archive_name> [<file_names>...][<@listfiles...>]
7z的commands中包含添加文件到壓縮包、從壓縮包中刪除文件以及提取文件等等多個(gè)命令,在這里我就不多贅述,有興趣的可以在7zip的安裝目錄使用cmd運(yùn)行7z.exe查看具體的命令。
今天我們要做的就是使用密碼將壓縮包中的文件提取出來(lái),具體的命令如下:
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í)我沒(méi)有太明白,字面的意思大概是說(shuō)為輸出/錯(cuò)誤/進(jìn)程行設(shè)置輸出流,如果不設(shè)置-bse1屬性,當(dāng)解壓縮出現(xiàn)錯(cuò)誤,例如文件找不到時(shí),錯(cuò)誤提示就會(huì)出現(xiàn)在cmd窗口中而不是生成的log文件中,因此必須加上-bse1命令
java通過(guò)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來(lái)執(zhí)行后面的命令,7z啟動(dòng)以后原來(lái)的cmd窗口會(huì)關(guān)閉
• cmd /k start 7z.exe 表示會(huì)啟動(dòng)7z來(lái)執(zhí)行后面的命令,7z啟動(dòng)以后原來(lái)的cmd窗口不會(huì)關(guān)閉
• /B 表示啟動(dòng)應(yīng)用程序,但是并不創(chuàng)建新的窗口
通過(guò)以上的代碼就可以解壓完成壓縮包文件,如果要知道解壓的密碼是否正確或者壓縮包是否損壞等信息,可以通過(guò)獲取生成txt日志文件的內(nèi)容來(lái)得知,這個(gè)不在本篇范圍之后,后續(xù)再說(shuō)。
遇到的問(wèn)題
7z.exe文件路徑找不到
出現(xiàn)該問(wèn)題是由于7zip的安裝路徑中存在空格
解決方案:
• 選擇7zip安裝路徑,不要安裝在有空格的路徑中
• 將路徑中的空格使用雙引號(hào)引起來(lái),如C:“Program Files”\7-Zip或者“C:\Program Files\7-Zip”或者C:\Program“ ”Files\7-Zip
文件路徑中存在連續(xù)多個(gè)空格導(dǎo)致文件找不到
出現(xiàn)該問(wèn)題是由于
Runtime.getRuntime().exec(command)
方法在執(zhí)行過(guò)程中,會(huì)將文件路徑中的多個(gè)連續(xù)空格轉(zhuǎn)換為單個(gè)空格,這種情況在文件全路徑外面加上雙引號(hào)也是不管用的
解決方案:
替換文件路徑中的空格,將每一個(gè)空格都替換為帶有雙引號(hào)的空格即可
關(guān)于java中怎么利用7zip對(duì)壓縮包進(jìn)行解壓的問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
當(dāng)前標(biāo)題:java中怎么利用7zip對(duì)壓縮包進(jìn)行解壓的
文章出自:http://aaarwkj.com/article36/peejpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)、微信小程序、外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)