安卓程序raw文件放在sd卡代碼實(shí)例

字號(hào):


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