首页 > 系统 > Android > 正文

Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法

2020-04-11 10:50:45
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法。分享给大家供大家参考,具体如下:

private void CopyAssets(String assetDir, String dir) {    String[] files;    try {      // 获得Assets一共有几多文件      files = this.getResources().getAssets().list(assetDir);    } catch (IOException e1) {      return;    }    File mWorkingPath = new File(dir);    // 如果文件路径不存在    if (!mWorkingPath.exists()) {      // 创建文件夹      if (!mWorkingPath.mkdirs()) {        // 文件夹创建不成功时调用      }    }    for (int i = 0; i < files.length; i++) {      try {        // 获得每个文件的名字        String fileName = files[i];        // 根据路径判断是文件夹还是文件        if (!fileName.contains(".")) {          if (0 == assetDir.length()) {            CopyAssets(fileName, dir + fileName + "/");          } else {            CopyAssets(assetDir + "/" + fileName, dir + "/"                + fileName + "/");          }          continue;        }        File outFile = new File(mWorkingPath, fileName);        if (outFile.exists())          outFile.delete();        InputStream in = null;        if (0 != assetDir.length())          in = getAssets().open(assetDir + "/" + fileName);        else          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();      }    }}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android数据库操作技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表