主要利用了ant.jar对文件进行压缩处理。以下为全部代码,界面是随便所画。如有什么问题还希望各位指出。
xml文件代码 :<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/backup"
android:text="backup" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/recover"
android:text="recover"/>
</LinearLayout>
android 代码:package com.android.file;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.zip.ZipException;
import com.android.file.zip.ZipControl;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class FileAndroidActivity extends Activity implements OnClickListener {
private final static String TAG = "FileAndroidActivity";
private String[] fileSrcStrings;//指定压缩源,可以是目录或文件的数组
private String decompressDirString="";//解压路径
private String archiveString="";//压缩包路径
private String commentString="Androi Java Zip 测试.";//压缩包注释
private ZipControl mZipControl;
private Button mBackupButton;
private Button mRecoverButton;
private String srcString;//第一个文件的路径
private String srcTwoString;//第二个文件的路径
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBackupButton = (Button) findViewById(R.id.backup);
mRecoverButton = (Button) findViewById(R.id.recover);
mBackupButton.setOnClickListener(this);
mRecoverButton.setOnClickListener(this);
String pathString =this.getCacheDir().toString();
Log.e(TAG, "path is "+ pathString);
archiveString=pathString+"/zip";
decompressDirString = pathString+"/unzip";
File zipFile = new File(archiveString);
if(!zipFile.exists())
{
zipFile.mkdir();
Log.e(TAG, "make zipdir success");
}
else {
Log.e(TAG, "exit zipdir");
}
File unZipFile = new File(decompressDirString);
if(!unZipFile.exists())
{
unZipFile.mkdir();
Log.e(TAG, "make undir success");
}
else
{
Log.e(TAG, "exit undir");
}
String strFileOne = pathString+"/fileoneDir";
File fileOneFile = new File(strFileOne);
if(!fileOneFile.exists())
{
fileOneFile.mkdir();
Log.e(TAG, "make fileonedir success");
}
else {
Log.e(TAG, "exit fileonedir");
}
srcString = strFileOne+"/testfile01.txt";
String strFileTwo =pathString+"/filetwoDir";
File fileOneFileTwo = new File(strFileTwo);
if(!fileOneFileTwo.exists())
{
fileOneFileTwo.mkdir();
Log.e(TAG, "make filetwoDir success");
}
else {
Log.e(TAG, "exit filetwoDir");
}
srcTwoString = strFileTwo+"/testfile02.txt";
fileSrcStrings= new String[]{srcString,srcTwoString};
mZipControl = new ZipControl();
}
@Override
public void onClick(View v)
{
int id = v.getId();
switch (id)
{
case R.id.backup:
Log.e(TAG, "start backup");
try
{
mZipControl.writeByApacheZipOutputStream(fileSrcStrings, archiveString+"/test.zip", commentString);
}
catch (FileNotFoundException e)
{
Log.e(TAG, e.toString());
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
Log.e(TAG, e.toString());
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
case R.id.recover:
try
{
ZipControl.readByApacheZipFile(archiveString+"/test.zip", decompressDirString);
}
catch (FileNotFoundException e)
{
Log.e(TAG, e.toString());
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ZipException e)
{
Log.e(TAG, e.toString());
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e(TAG, "start recover ");
break;
default:
break;
}
}
}
本文作者:zhouxin464585932 来源:网络