有时候我们需要把程序的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; 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(); } }
-
|