Added AssetExtract.java by Renpytom - it's not used yet anywhere
This commit is contained in:
105
project/src/AssetExtract.java
Normal file
105
project/src/AssetExtract.java
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
// This string is autogenerated by ChangeAppSettings.sh, do not change
|
||||||
|
// spaces amount
|
||||||
|
package net.sourceforge.clonekeenplus;
|
||||||
|
|
||||||
|
import java.util.zip.*;
|
||||||
|
import java.io.*;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import android.content.res.AssetManager;
|
||||||
|
|
||||||
|
class AssetExtract {
|
||||||
|
|
||||||
|
private AssetManager mAssetManager = null;
|
||||||
|
|
||||||
|
AssetExtract(AssetManager am) {
|
||||||
|
mAssetManager = am;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean extract(String asset, String target) {
|
||||||
|
|
||||||
|
byte buf[] = new byte[1024 * 1024];
|
||||||
|
|
||||||
|
InputStream assetStream = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
assetStream = mAssetManager.open(asset, AssetManager.ACCESS_RANDOM);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO: Report error.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZipInputStream zip = new ZipInputStream(assetStream);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
ZipEntry entry = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
entry = zip.getNextEntry();
|
||||||
|
} catch ( java.io.IOException e ) {
|
||||||
|
// Todo: Error out.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( entry == null ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.i("AssetExtract", "Extracting " + entry.getName());
|
||||||
|
|
||||||
|
if (entry.isDirectory()) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
new File(target +"/" + entry.getName()).mkdirs();
|
||||||
|
} catch ( SecurityException e ) { };
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
OutputStream out = null;
|
||||||
|
|
||||||
|
String path = target + "/" + entry.getName();
|
||||||
|
|
||||||
|
try {
|
||||||
|
out = new FileOutputStream( path );
|
||||||
|
} catch ( FileNotFoundException e ) {
|
||||||
|
} catch ( SecurityException e ) { };
|
||||||
|
if ( out == null ) {
|
||||||
|
// TODO: Error.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
int len = zip.read(buf);
|
||||||
|
|
||||||
|
if (len == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
out.write(buf, 0, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
out.flush();
|
||||||
|
out.close();
|
||||||
|
} catch ( java.io.IOException e ) {
|
||||||
|
// TODO: Deal w/ error.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
zip.close();
|
||||||
|
assetStream.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// pass
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user