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();
}
}
}