assets文件夹下文件目录复制到SD卡下

    private void copyDir(String path) {  

     String[] files;
     try {
     files = this.getAssets().list(path);
     if (files.length == 0) {
     copyFile(path);
     } else {
     String filePath = "mnt/sdcard" + "/" + path;
     File file = new File(filePath);
     file.mkdirs();
     for (int i = 0; i < files.length; i++) {
     String[] files2 = this.getAssets().list(path+"/"+files[i]);
     if (files2.length == 0) {
     copyFile(path + "/" + files[i]);
     } else {
     copyDir(path + "/" + files[i]);
     }
     }  

     }  

     } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }  

     }  

    private void copyFile(String path) {
     Log.v("file", path);
     InputStream in = null;
     FileOutputStream out = null;
     try {  

     String filePath = "mnt/sdcard" + "/" + path;  

     File file = new File(filePath);  

     if (!file.exists()) {
     in = this.getAssets().open(path);
     out = new FileOutputStream(file);
     int length = -1;
     byte[] buf = new byte[1024];
     while ((length = in.read(buf)) != -1) {
     out.write(buf, 0, length);
     }
     out.flush();
     in.close();
     out.close();
     }
     } catch (IOException e) {
     e.printStackTrace();
    } finally {
     try {
     if (in != null) {
     in.close();
     }
     if (out != null) {
     out.close();
     }
     } catch (IOException e) {
     e.printStackTrace();
     }
     }  

     }
时间: 2024-10-15 22:34:15

assets文件夹下文件目录复制到SD卡下的相关文章

在SD卡上创建/删除文件夹 使用DDMS透视图管理SD卡

在SD卡上创建和删除文件夹 基本步骤: (1):在控制台中输入adb shell命令,进入shell控制台. (2):在shell控制台中输入cd sdcard 命令,进入SD卡中. (3):在shell控制台中输入ls -al 命令,查看sd卡中包含的全部文件和文件夹. (4):在shell控制台中输入mkdir mrsoft 命令,创建一个名为mrsoft的文件夹. (5):在shell控制台中输入ls -al命令,查看SD卡中包含的全部文件和文件夹.可以看到文件夹mrsoft已经创建. (

Android 使用存放在存assets文件夹下的SQLite数据库

因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机自身的存储上之后再使用,后来考虑到每次都拷贝的话效率不高,并且如果涉及到对数据库的修改操作的话拷贝之后数据就被恢复了. 因此就写了该封装,该封装只是在第一次使用数据库文件的时候把该文件夹拷贝到手机的/data/data/应用程序报名/database文件夹下,之后就直接从这个地方使用了.并且它允许你

将android项目assets文件夹下的文件复制到SD卡中

<pre name="code" class="html">package com.lapel.activity.html; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; /** * * 将assets文件夹下的文件复制

Android开发系列(十七):读取assets文件夹下的数据库文件

在做Android应用的时候,不可避免要用到数据库.可是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客攻克了我前面博客中写的一个小游戏的一个问题.另外也能够读取Raw文件夹下的数据库文件) 这就造成了一个问题.这个问题事实上非常好解决,解决方法例如以下: 我们首先把有数据的数据库文件放在assets资源文件夹下边,然后在apk应用启动的时候,把assets文件夹下的数据库文件的数据写入到真机的内存中去. 下边開始我们

android 如何在sd卡下创建指定的多层文件夹

我们在很多情况下都需要在sd卡目录下创建子目录存放图片文件之类的,之前也有人问我怎么在sd卡下创建子文件夹,今天就讲一个例子,就是当程序发生异常的时候,怎么把异常写在指定的文件中,当然在这里只讲如何创建文件夹, 代码 public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle

Android工程文件下assets文件夹与res文件夹的区别

1.assets:不会在R.java文件下生成相应的标记,assets文件夹可以自己创建文件夹,必须使用AssetsManager类进行访问,存放到这里的资源在运行打包的时候都会打入程序安装包中, 2.res:会在R.java文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的. res/raw和assets文件夹来存放不需要系统编译成二进制的文件,例如字体文件等 在res文件夹下还可以定义一下目录: res/anim:这里存放的是动画

Android(java)学习笔记135:Android中assets文件夹资源的访问

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

assets文件夹与static文件夹的区别

assets文件夹与static文件夹的区别原地址==>https://www.cnblogs.com/x123811/p/9230700.html 相同点===>assets文件夹和static文件夹在vue-cli生成的项目中,都是用来存放静态资源的.不同点===>assets目录中的文件会被webpack处理解析为模块依赖,[只支持相对路径形式].build的时候由Webpack解析为模块依赖. static/ 目录下的文件并不会被Webpack处理:它们会直接被复制到最终的打包目

PHP 查看文件夹大小、复制文件夹、删除文件夹

PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动编写这些函数,主要的技巧是通过递归将问题逐层分解,直到分解成可以直接解决的最小子问题. ====================查看文件夹大小===================== 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小.所以只需要将文件夹逐层查找,统