打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
Android中读取zip文件
尹亮亮
>《andriod》
2016.07.11
关注
public class ZIP {
public ZIP(){
}
/**
* DeCompress the ZIP to the path
* @param zipFileString name of ZIP
* @param outPathString path to be unZIP
* @throws Exception
*/
public static void UnZipFolder(String zipFileString, String outPathString) throws Exception {
ZipInputStream
inZip
=
new
ZipInputStream(new FileInputStream(zipFileString));
ZipEntry zipEntry;
String
szName
=
""
;
while ((
zipEntry
=
inZip
.getNextEntry()) != null) {
szName
=
zipEntry
.getName();
if (zipEntry.isDirectory()) {
// get the folder name of the widget
szName
=
szName
.substring(0, szName.length() - 1);
File
folder
=
new
File(outPathString + File.separator + szName);
folder.mkdirs();
} else {
File
file
=
new
File(outPathString + File.separator + szName);
file.createNewFile();
// get the output stream of the file
FileOutputStream
out
=
new
FileOutputStream(file);
int len;
byte[]
buffer
=
new
byte[1024];
// read (len) bytes into buffer
while ((
len
=
inZip
.read(buffer)) != -1) {
// write (len) byte from buffer at the position 0
out.write(buffer, 0, len);
out.flush();
}
out.close();
}
}
inZip.close();
}
/**
* Compress file and folder
* @param srcFileString file or folder to be Compress
* @param zipFileString the path name of result ZIP
* @throws Exception
*/
public static void ZipFolder(String srcFileString, String zipFileString)throws Exception {
//create ZIP
ZipOutputStream
outZip
=
new
ZipOutputStream(new FileOutputStream(zipFileString));
//create the file
File
file
=
new
File(srcFileString);
//compress
ZipFiles(file.getParent()+File.separator, file.getName(), outZip);
//finish and close
outZip.finish();
outZip.close();
}
/**
* compress files
* @param folderString
* @param fileString
* @param zipOutputSteam
* @throws Exception
*/
private static void ZipFiles(String folderString, String fileString, ZipOutputStream zipOutputSteam)throws Exception{
if(
zipOutputSteam
== null)
return;
File
file
=
new
File(folderString+fileString);
if (file.isFile()) {
ZipEntry
zipEntry
=
new
ZipEntry(fileString);
FileInputStream
inputStream
=
new
FileInputStream(file);
zipOutputSteam.putNextEntry(zipEntry);
int len;
byte[]
buffer
=
new
byte[4096];
while((
len
=
inputStream
.read(buffer)) != -1)
{
zipOutputSteam.write(buffer, 0, len);
}
zipOutputSteam.closeEntry();
}
else {
//folder
String fileList[] = file.list();
//no child file and compress
if (fileList.length
<
= 0) {
ZipEntry
zipEntry
=
new
ZipEntry(fileString+File.separator);
zipOutputSteam.putNextEntry(zipEntry);
zipOutputSteam.closeEntry();
}
//child files and recursion
for (int
i
=
0
; i
<
fileList.length
; i++) {
ZipFiles(folderString, fileString+java.io.File.separator+fileList[i], zipOutputSteam);
}//end of for
}
}
/**
* return the InputStream of file in the ZIP
* @param zipFileString name of ZIP
* @param fileString name of file in the ZIP
* @return InputStream
* @throws Exception
*/
public static InputStream UpZip(String zipFileString, String fileString)throws Exception {
ZipFile
zipFile
=
new
ZipFile(zipFileString);
ZipEntry
zipEntry
=
zipFile
.getEntry(fileString);
return zipFile.getInputStream(zipEntry);
}
/**
* return files list(file and folder) in the ZIP
* @param zipFileString ZIP name
* @param bContainFolder contain folder or not
* @param bContainFile contain file or not
* @return
* @throws Exception
*/
public static List
<
File
>
GetFileList(String zipFileString, boolean bContainFolder, boolean bContainFile)throws Exception {
List
<
File
>
fileList
=
new
ArrayList
<
File
>
();
ZipInputStream
inZip
=
new
ZipInputStream(new FileInputStream(zipFileString));
ZipEntry zipEntry;
String
szName
=
""
;
while ((
zipEntry
=
inZip
.getNextEntry()) != null) {
szName
=
zipEntry
.getName();
if (zipEntry.isDirectory()) {
// get the folder name of the widget
szName
=
szName
.substring(0, szName.length() - 1);
File
folder
=
new
File(szName);
if (bContainFolder) {
fileList.add(folder);
}
} else {
File
file
=
new
File(szName);
if (bContainFile) {
fileList.add(file);
}
}
}
inZip.close();
return fileList;
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
C#生成ZIP压缩包
.net 压缩文件夹
C#使用ICSharpCode.SharpZipLib.dll压缩文件夹和文件
Asp.net中文件的压缩与解压
Java读写Zip文件
如何将文件打成zip包并下载
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×