public void unrar(string rarpath, string targetpath) throws exception
// 判斷編碼,解決中文亂碼的問題
string localpath = f.isunicode() ? f.getfilenamew() : f
.getfilenamestring();
// 得到的localpath分隔符為"\",轉為為"/"
localpath = targetpath
+ localpath.replaceall("\\\\", file.separator);
int end = localpath.lastindexof(file.separator);
string dir = localpath;
if (end != -1)
// 需要建立資料夾
file file = new file(dir);
if (!file.exists())
outputstream = new fileoutputstream(localpath);
// archive自己的生成檔案的方法
archive.extractfile(f, outputstream);
f = archive.nextfileheader();
} outputstream.close();
archive.close();
} private void unzip(string zippath, string targetpath) throws exception
// 例項化zipfile物件
zipfile zipfile = new zipfile(file);
// 根據檔案的編碼建立,解決中文亂碼的問題,getencoding()有可能為null,就預設編碼
zipfile = new zipfile(file, zipfile.getencoding());
// 獲取zipfile中的條目
enumerationfiles = zipfile.getentries();
// 迭代中的每乙個條目
zipentry entry = null;
// 解壓後的檔案
file outfile = null;
// 讀取壓縮檔案的輸入流
bufferedinputstream bin = null;
// 寫入解壓後檔案的輸出流
bufferedoutputstream bout = null;
while (files.hasmoreelements())
continue;
}// 建立目錄
if (!outfile.getparentfile().exists())
if (outfile.exists())
// 獲取讀取條目的輸入流
bin = new bufferedinputstream(zipfile.getinputstream(entry));
// 獲取解壓後檔案的輸出流
bout = new bufferedoutputstream(new fileoutputstream(outfile));
// 讀取條目,並寫入解壓後檔案
byte buffer = new byte[1024];
int readcount = -1;
while ((readcount = bin.read(buffer)) != -1)
bout.flush();
bin.close();
bout.close();
buffer = null;
} }
jar包:
Python解壓zip和rar檔案
更多0 python rarzip 如上篇所說,我要使用python解壓一些檔案,一來就不懂,google到zipfile了,然後又google到rarfile了。rarfile是模仿zipfile模組寫的,所以介面幾乎一樣,只有rar和zip的字元差別。但是zip功能是python內建模組,rar...
解決ubuntu中zip解壓的中文亂碼問題
解決ubuntu中zip解壓的中文亂碼問題 在我的ubuntu12.10中,發現顯示中文基本都是正常的,只有在解壓 windows傳過來的zip檔案時,才會出現亂碼。所以,我用另乙個方法解決中文亂碼問題。用到的工具是the unarchiver專案提供的lsar unar工具。安裝 12.04及以上...
解決linux下zip檔案解壓後中文亂碼問題
最近專案上碰到在windows上壓縮了一些,檔名稱都是中文的,scp到linux下用unzip解壓後檔名 原因 由於zip在壓縮時並沒有指定編碼格式,windows下生成的zip檔案中的編碼是gbk gb2312等,而linux下的預設編碼是utf8因此,導致這些zip檔案在linux下解壓時出現中...