AntZipActivity:
public class AntZipActivity extends Activity {
public static final String TYPE = "type";
public static final int TYPE_ZIP = -1;
public static final int TYPE_TAR = 1;
public static final String SUFFIX_ZIP = ".zip";
public static final String SUFFIX_TAR = ".tar";
/** Called when the activity is first created. */
private Button btnDoCompress;
private Button btnDecompress;
private RadioButton radioZip;
private RadioButton radioTar;
private boolean isZip = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.antzip);
radioZip = (RadioButton)findViewById(R.id.radioZip);
isZip = true;
radioZip.setChecked(true);
radioZip.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
System.out.println("radioZip:"+isChecked);
if(isChecked)
{
isZip = true;
}
}
});
radioTar = (RadioButton)findViewById(R.id.radioTar);
radioTar.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
System.out.println("radioTar:"+isChecked);
if(isChecked)
{
isZip = false;
}
}
});
btnDoCompress = (Button)findViewById(R.id.button1);
btnDoCompress.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//进入压缩界面
Intent i = new Intent(AntZipActivity.this,DozipActivity.class);
i.putExtra(TYPE, isZip?TYPE_ZIP:TYPE_TAR);
AntZipActivity.this.startActivity(i);
}
});
btnDecompress = (Button)findViewById(R.id.button2);
btnDecompress.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//进入解压界面
Intent i = new Intent(AntZipActivity.this,UnzipActivity.class);
i.putExtra(TYPE, isZip?TYPE_ZIP:TYPE_TAR);
AntZipActivity.this.startActivity(i);
}
});
}
}
DozipActivity:
public class DozipActivity extends Activity implements OnClickListener{
private EditText etPath;
private EditText etDest;
private Button btnDozip;
private TextView tvTip;
private String srcPath;
private String zipDest;
private int type;
private String suffix;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Ant-压缩");
type = getIntent().getIntExtra(AntZipActivity.TYPE, AntZipActivity.TYPE_ZIP);
suffix = type==AntZipActivity.TYPE_ZIP ? AntZipActivity.SUFFIX_ZIP:AntZipActivity.SUFFIX_TAR;
setContentView(R.layout.dozip);
//
etPath = (EditText)findViewById(R.id.editText1);
etDest = (EditText)findViewById(R.id.editText2);
//设置一些默认的函数
etPath.setText("/sdcard/antzip");
etDest.setText("/sdcard/antzip"+suffix);
btnDozip = (Button)findViewById(R.id.button);
tvTip = (TextView)findViewById(R.id.tv_tip);
btnDozip.setOnClickListener(this);
}
@Override
public void onClick(View v) {
srcPath = etPath.getEditableText().toString();
if(TextUtils.isEmpty(srcPath))
{
Toast.makeText(this, "请指定一个路径", Toast.LENGTH_SHORT).show();
return;
}
File srcFile = new File(srcPath);
if(!srcFile.exists())
{
Toast.makeText(this, "指定的压缩包不存在", Toast.LENGTH_SHORT).show();
return;
}
zipDest = etDest.getEditableText().toString();
if(TextUtils.isEmpty(zipDest))
{
//如果用户没有输入目标文件,则生成一个默认的
zipDest = srcFile.getParent();
}
System.out.println("zip name:"+zipDest);
//如果是以/结尾的,则证明用户输入的是一个目录 ,需要在后面加上文件名
if(zipDest.endsWith(File.separator))
{
zipDest+=srcFile.getName()+suffix;
}
else
{
//如果压缩文件名不是以zip/tar结尾,则加上后缀后
if(!zipDest.endsWith(suffix))
{
zipDest +=suffix;
}
}
//如果用户选择的是zip,则用 zipUtil进行压缩
if(type == AntZipActivity.TYPE_ZIP)
{
ZipUtil zipp = new ZipUtil();
zipp.doZip(srcPath, zipDest);
}
//如果用户选择的是tar,则用 tarUtil进行压缩
else
{
TarUtil tarr = new TarUtil();
tarr.doTar(srcPath, zipDest);
}
//压缩完成后还是提示用户
tvTip.setText("压缩文件路径:"+zipDest);
Toast.makeText(this, "压缩完成", Toast.LENGTH_SHORT).show();
}
}










