天天看点

assert文件夹 设置android_android assert 目录操作

预前知识: Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可; 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们。那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app public void copyFilesFassets(Context context,String oldPath,String newPath) {                              try {         String fileNames[] = context.getAssets().list(oldPath);//获取assets目录下的所有文件及目录名         if (fileNames.length > 0) {//如果是目录             File file = new File(newPath);             file.mkdirs();//如果文件夹不存在,则递归             for (String fileName : fileNames) {                copyFilesFassets(context,oldPath + "/" + fileName,newPath+"/"+fileName);             }         } else {//如果是文件             InputStream is = context.getAssets().open(oldPath);             FileOutputStream fos = new FileOutputStream(new File(newPath));             byte[] buffer = new byte[1024];             int byteCount=0;                            while((byteCount=is.read(buffer))!=-1) {//循环从输入流读取 buffer字节                         fos.write(buffer, 0, byteCount);//将读取的输入流写入到输出流             }             fos.flush();//刷新缓冲区             is.close();             fos.close();         }     } catch (Exception e) {         // TODO Auto-generated catch block         e.printStackTrace();         //如果捕捉到错误则通知UI线程 MainActivity.handler.sendEmptyMessage(COPY_FALSE);     }                            }