android zip解压

android zip解压

2023年7月7日发(作者:)

android zip解压

filed in android post by onelong on2010-8-31 0:50 Tuesday

最近在老是泡论坛!看到别人的问题,突然做一个zip解压软件!zip是开源的,不同rar!zip解压软件就是使用了java 的zip包!不过不支持中文的路径,如果你的zip包里包含中文名的东西,呵呵,没办法解压了!Java 毕竟是外国的东西呀!中文支持得不好!是不是没有办法解决呢?不是的,使用apache 的就支持中文的!

下面的android的源码:

//

package ;

import ;

import ist;

import ;

import tivity;

import ;

import nment;

import ;

import dapter;

import ew;

import ;

/**

* zip解压软件,不支持中文路径!

*

*/

public class AndroidUnZip extends ListActivity {

private List txtList = new ArrayList(); ;

public void onCreate(Bundle savedInstanceState) { te(savedInstanceState);

File sdCardPath = ernalStorageDirectory();

GetFiles( sdCardPath );

}

/**

* 获取文件列表

* @param filePath

*/

public void GetFiles( File filePath ){

int i;

File[] files = les();

if(files != null){

for(i=0;i<;i++){

if(files[i].isDirectory()){

GetFiles( files[i] );

}

else if(files[i].getName().toLowerCase().endsWith(".zip")){

(files[i]);

}

}

ArrayAdapter adapter = new

ArrayAdapter(this,_list_item_1,FileToStr(txtList));

setListAdapter(adapter);

}

}

/**

* 把文件列表转换成字符串

* @param f * @return

*/

public String[] FileToStr( List f ){

ArrayList listStr = new ArrayList();

int i;

for (i = 0; i < (); i++) {

String nameString = (i).getName();

(nameString);

}

return y(new String[0]);

}

/**

* 当List中有点击时被激活

*/

protected void onListItemClick(ListView l, View v, int position, long id) {

File file = (position);

String f=ng();

UnZip zip=new UnZip(f);

if(us())

xt(, "解压成功!", _SHORT).show();

else

xt(, "解压失败!", _SHORT).show();

}

}

//

package ;

import tputStream;

import ; import putStream;

import tputStream;

import ption;

import ry;

import utStream;

public class UnZip {

private boolean staus=false;

public UnZip(String file){

String unzipfile = file; //解压缩的文件名包含路径

try {

File olddirec = new File(unzipfile); //解压缩的文件路径(为了获取路径)

ZipInputStream zin = new ZipInputStream(new FileInputStream(unzipfile));

ZipEntry entry;

//创建文件夹

while ( (entry = tEntry()) != null){

if (ctory()) {

File directory = new File(ent(), e());

if (!())

if (!())

(0);

ntry();

}

if (!ctory()) {

File myFile = new File(e());

//输出路径 String ofile=e(".zip", "");

File fo=new File(ofile);

if(!()){

();

}

FileOutputStream fout = new FileOutputStream(ofile+"/"+h());

DataOutputStream dout = new DataOutputStream(fout);

byte[] b = new byte[1024];

int len = 0;

while ( (len = (b)) != -1) {

(b, 0, len);

}

();

();

ntry();

staus=true;

}

}

}

catch (IOException e) {

tackTrace();

}

}

public boolean getStaus(){

return staus;

}

} 完成了!但是还有一样东西别忘了!那就权限啦!

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688677214a161761.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信