java - android 怎么复制assets文件夹到本地SD卡?

查看:83
本文介绍了java - android 怎么复制assets文件夹到本地SD卡?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

需要复制Assert的文件夹到本地SD卡,有40M的大小,请问怎么做呀??

解决方案

谢谢大家!已解决
//复制assets大文件到本地SD卡

public static void CopyAssets(Context context, String assetDir, String dir) {
    String[] files;
    try {
        files = context.getResources().getAssets().list(assetDir);
    } catch (IOException e1) {
        return;
    }
    File mWorkingPath = new File(dir);
    // if this directory does not exists, make one.
    if (!mWorkingPath.exists()) {
        if (!mWorkingPath.mkdirs()) {

        }
    }

    for (int i = 0; i < files.length; i++) {
        try {
            String fileName = files[i];
            // we make sure file name not contains '.' to be a folder.
            if (!fileName.contains(".")) {
                if (0 == assetDir.length()) {
                    CopyAssets(context, fileName, dir + fileName + "/");
                } else {
                    CopyAssets(context, assetDir + "/" + fileName, dir+ fileName + "/");
                }
                continue;
            }
            File outFile = new File(mWorkingPath, fileName);
            if (outFile.exists())
                outFile.delete();
            InputStream in = null;
            if (0 != assetDir.length())
                in = context.getAssets().open(assetDir + "/" + fileName);
            else
                in = context.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();
        }
    }
}

这篇关于java - android 怎么复制assets文件夹到本地SD卡?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆