有时候我们需要把程序的raw文件放在sd卡中,其实有时候这样做可以释放资源,有时候可能是使坏呼呼
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();
}
}
标签:复制到,files,assets,int,fileName,raw,compareTo,new,out From: https://blog.51cto.com/u_16166892/6523988