2
这可能是一个非常愚蠢的/ noob类似的问题,但什么是最好的方法有一个.apk文件,当安装时将一个zip文件放到SD卡上,在特定的目录中,从资产或原始文件夹?从.APK文件到SD卡的压缩
这可能是一个非常愚蠢的/ noob类似的问题,但什么是最好的方法有一个.apk文件,当安装时将一个zip文件放到SD卡上,在特定的目录中,从资产或原始文件夹?从.APK文件到SD卡的压缩
我有一个应用程序需要做到这一点,我所做的是检查我是否需要在SDCard上运行时,如果用户删除它,我可以将其替换。这里是我的代码:
void copyAssets()
{
String[] files;
try
{
files = this.getResources().getAssets().list("");
}
catch (IOException e1)
{
return;
}
if(!mWorkingPath.exists())
{
if(!mWorkingPath.mkdirs())
{
new AlertDialog.Builder(this)
.setTitle(R.string.ERROR)
.setMessage(R.string.FAILED_DIR_CREATE)
.setPositiveButton(android.R.string.ok, new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
})
.create()
.show();
}
}
for(int i = 0; i < files.length; i++)
{
try
{
String fileName = files[i];
if(fileName.compareTo("images") == 0 ||
fileName.compareTo("sounds") == 0 ||
fileName.compareTo("webkit") == 0)
{
continue;
}
File outFile = new File(mWorkingPath, fileName);
if(outFile.exists()) continue;
InputStream in = getAssets().open(fileName);
OutputStream out = new FileOutputStream(outFile);
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0)
{
out.write(buf, 0, len);
}
in.close();
out.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}