package com.ljp.laucher.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.os.Environment;
import android.widget.ProgressBar;
public class FileOperation {
public static boolean deleteFile(File file) {
try {
File[] fs = file.listFiles();
if (fs != null) {
for (File f : fs) {
if (f.isDirectory()) {
deleteFile(f);
f.delete();
} else {
f.delete();
}
}
}
} catch (Exception e) {
return false;
}
return true;
}
public static boolean loadFile(String url,ProgressBar pb) {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response;
try {
response = client.execute(get);
HttpEntity entity = response.getEntity();
float length = entity.getContentLength();
InputStream is = entity.getContent();
FileOutputStream fileOutputStream = null;
if (is != null) {
File entryDir = new File(Environment.getExternalStorageDirectory()+ "/night_girls/vip/");
if (!entryDir.exists()) {
entryDir.mkdirs();
}
File file = new File(Environment.getExternalStorageDirectory()
+ "/night_girls/vip/"+url.substring(url.lastIndexOf("/")+1,url.length()));
fileOutputStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int ch = -1;
float count = 0;
while ((ch = is.read(buf)) != -1) {
fileOutputStream.write(buf, 0, ch);
count += ch;
pb.setProgress((int) (count * 100 / length));
}
}
fileOutputStream.flush();
if (fileOutputStream != null) {
fileOutputStream.close();
}
} catch (Exception e) {
return false;
}
return true;
}
public static void Unzip(String zipFile, String toDir,String direName) {
int BUFFER = 4096; // 这里缓冲区我们使用4KB,
String strEntry; // 保存每个zip的条目名称
try {
BufferedOutputStream dest = null; // 缓冲输出流
FileInputStream fis = new FileInputStream(zipFile);
ZipInputStream zis = new ZipInputStream(
new BufferedInputStream(fis));
ZipEntry entry; // 每个zip条目的实例
while ((entry = zis.getNextEntry()) != null) {
try {
int count;
byte data[] = new byte[BUFFER];
strEntry = entry.getName();
File entryFile = new File(toDir + strEntry);
File entryDir = new File(toDir+direName);
if (!entryDir.exists()) {
entryDir.mkdirs();
}
FileOutputStream fos = new FileOutputStream(entryFile);
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER)) != -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
} catch (Exception ex) {
// ex.printStackTrace();
}
}
zis.close();
} catch (Exception cwj) {
// cwj.printStackTrace();
}
File f = new File(zipFile);
f.delete();
}
}