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

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • Android API编程之Assets文件操作示例

    本文实例讲述了Android API Assets文件操作.分享给大家供大家参考,具体如下: public class ReadAssetActivity extends Activity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.re

  • 读写Android中assets目录下的文件的方法详解

    Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可: 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们.那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.apk目录下,以apk形式存在,asset/r

  • android文件操作——读取assets和raw文件下的内容

    来自Resources和Assets 中的文件只可以读取而不能进行写的操作. assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件. 1. 先在Activity里面调用getAssets() 来获取AssetManager引用. 2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream. 3. 然后就是用已经open fi

  • Android 读取assets和raw文件内容实例代码

    android之文件操作--读取assets和raw文件下的内容 1.分别创建assets文件夹和res/raw文件夹:(要注意的raw文件是在res下new,然后创建一个名字为raw的文件夹) 2.创建两个txt文件,复制到asset和raw文件夹中: 3.实现的效果: 4.实现代码: (1)布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="

  • android读取assets文件示例

    复制代码 代码如下: // 读取assets文件private void assetsRead(){String fileName = "my_assets.txt";// assets下文件//String fileName = "test/my_assets_test.txt";// assets下子目录文件String ret = "";try {InputStream is = getResources().getAssets().ope

  • Android 中raw和assets文件夹的区别

    Android 中raw和assets文件夹的区别 以下是我通过整理网上与自己的经验所得. raw 和 assets 的相同点 它们会被原封不动的拷贝到APK中,而不会像其它资源文件那样被编译成二进制的形式. raw 和 assets 的不同点 1.它们在代码中的不同方式 : assets: InputStream assets = getAssets().open("xxxx"); raw: InputStream raw = getResources().openRawResour

  • Android开发实现读取Assets下文件及文件写入存储卡的方法

    本文实例讲述了Android开发实现读取Assets下文件及文件写入存储卡的方法.分享给大家供大家参考,具体如下: 调用一个反编译的.so文件,查看起加密和解密情况,需要解析上万的数组,而so文件加密解密都是通过Byte来进行,又需要把String字符串转化为 Byte,当把数据直接写在代码中就会提示多Byte数组过大.最后把数组写到Assets文件加下,读取txt文本文件. 读取Assets方法如下: public String getFromAssets(String fileName) {

  • Android操作存放在assets文件夹下SQLite数据库的方法

    本文实例讲述了Android操作存放在assets文件夹下SQLite数据库的方法.分享给大家供大家参考.具体如下: 因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机自身的存储上之后再使用,后来考虑到每次都拷贝的话效率不高,并且如果涉及到对数据库的修改操作的话拷贝之后数据就被恢复了. 因此就写了该封装,该封装只是在第一次使用数据库文件的时候把该文

  • Android播放assets文件里视频文件相关问题分析

    本文实例讲述了Android播放assets文件里视频文件相关问题.分享给大家供大家参考,具体如下: 今天做了一个功能,就是播放项目工程里面的视频文件,不是播放SD卡视频文件. 我开始尝试把视频文件放到 assets文件目录下. 因为之前写webview加载assets文件夹时,是这样写的: webView = new WebView(this); webView.loadUrl(file:///android_asset/sample3_8.html); 依次类推,我尝试将视频video.3g

  • Android获取assets文件夹中的数据并写入SD卡示例

    本文示例主要实现了Android获取assets文件夹中的数据并将其写入到SD卡中,该程序实现的步骤主要为:首先读取assets文件夹中的数据库,再将其写入到SD存储卡中. 完整示例代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; /*将assets文件

  • 基于android中读取assets目录下a.txt文件并进行解析的深入分析

    android读取assets文件下的内容,一般都是使用getAsset.open()方法,并将文件的路径作为参数传入,而当我们解析一个目录下的文件时需要对其进行解析时,比如:a.txt文件的内容为:nameandroid,liuclass1,2,3,4这些文件有时就像是数据库文件的格式一样,我们就需要对其进行解析.我们知道获取assets文件后返回的是一个inputstream而不是一个file类型,所以我们需要对inputstream进行解析.主要分为两个阶段:第一个阶段为:去换行符,第二个

  • Android 加载assets中的资源文件实例代码

    Android 加载assets资源 在android中,如何加载assets目录下的文件夹呢?方法很简单,使用 AssetManager, 即 AssetManager assetManager = getAssets(); 例子如下: AssetManager assetManager = getAssets(); try { String[] files = assetManager.list("Files"); for(int i=0; i<FILES.LENGTH; {

随机推荐