最近要将时钟的一些资源做成文件夹放到apk中,然后用户安装的时候复制到SD卡,由于时间比较紧急,就没有做压缩和解压缩的处理,但是问题来了,文件夹最好的放置位置是assest目录,但是通常我们使用的方法都是open(文件名);来获得流,也就是必须知道整个文件的路径,但是我想的是将整个文件夹复制,android并没有提供这样的方法,纠结了好久,终于发现了一个方法list(目录名)。list里的参数是assets目录下的一个目录名,list(目录名)这会得到该目录下的文件和子文件夹,但是我却得不到文件夹的路径,所以只好遍历其子文件夹再用open(文件名);来一个一个文件复制。
/** * 从assets目录下拷贝整个文件夹,不管是文件夹还是文件都能拷贝 * * @param context * 上下文 * @param rootDirFullPath * 文件目录,要拷贝的目录如assets目录下有一个SBClock文件夹:SBClock * @param targetDirFullPath * 目标文件夹位置如:/sdcrad/SBClock */ public static void copyFolderFromAssets(Context context, String rootDirFullPath, String targetDirFullPath) { Log.d(TAG, "copyFolderFromAssets " + "rootDirFullPath-" + rootDirFullPath + " targetDirFullPath-" + targetDirFullPath); try { String[] listFiles = context.getAssets().list(rootDirFullPath);// 遍历该目录下的文件和文件夹 for (String string : listFiles) {// 看起子目录是文件还是文件夹,这里只好用.做区分了 Log.d(TAG, "name-" + rootDirFullPath + "/" + string); if (isFileByName(string)) {// 文件 copyFileFromAssets(context, rootDirFullPath + "/" + string, targetDirFullPath + "/" + string); } else {// 文件夹 String childRootDirFullPath = rootDirFullPath + "/" + string; String childTargetDirFullPath = targetDirFullPath + "/" + string; new File(childTargetDirFullPath).mkdirs(); copyFolderFromAssets(context, childRootDirFullPath, childTargetDirFullPath); } } } catch (IOException e) { Log.d(TAG, "copyFolderFromAssets " + "IOException-" + e.getMessage()); Log.d(TAG, "copyFolderFromAssets " + "IOException-" + e.getLocalizedMessage()); e.printStackTrace(); } }
private static boolean isFileByName(String string) { if (string.contains(".")) { return true; } return false; }
/** * 从assets目录下拷贝文件 * * @param context * 上下文 * @param assetsFilePath * 文件的路径名如:SBClock/0001cuteowl/cuteowl_dot.png * @param targetFileFullPath * 目标文件路径如:/sdcard/SBClock/0001cuteowl/cuteowl_dot.png */ public static void copyFileFromAssets(Context context, String assetsFilePath, String targetFileFullPath) { Log.d(TAG, "copyFileFromAssets "); InputStream assestsFileImputStream; try { assestsFileImputStream = context.getAssets().open(assetsFilePath); FileHelper.copyFile(assestsFileImputStream, targetFileFullPath); } catch (IOException e) { Log.d(TAG, "copyFileFromAssets " + "IOException-" + e.getMessage()); e.printStackTrace(); } }
复制过程的log:
相关推荐
在Android上,Unity会将StreamingAssets文件夹的内容复制到APK的assets目录下,而在iOS上则会被包含在.app包内。因此,在打包后,我们需要根据目标平台来调整读取文件的策略。 为了在Unity中正确读取Streaming...
5. **调用复制方法**:在应用启动时调用上面定义的`copyFileFromAssetsToPath()`方法,将数据库文件从assets复制到目标路径。 ```java if (!copyFileFromAssetsToPath(context, "myDatabase.db", targetPath)) { /...
本demo实现了程序启动时,从assets文件夹中复制sqlite文件到程序的功能,里面带了一个sqlite查看工具,sqlite分割工具,详细说明文档。复制sqlite速度还算比较快。程序启动后,Log会输出结果,也可以使用adb shell...
【描述】"安卓Android源码——仿iphone气泡短信DEMO.zip" 描述了这个项目的主要内容,即一段源代码,它是一个DEMO,用于展示如何在Android应用中复制iPhone的气泡式短信显示效果。开发者可以参考此DEMO学习如何在...
6. **assets文件夹**:此文件夹通常包含实际的图标资源,如图像文件或CSS样式表。开发者需要将这些文件引入到自己的项目中,以便正确显示图标。 7. **使用方法**:引入CSS文件后,开发者可以通过类名引用特定的图标...
在Xcode中,可以右键点击项目中的"Assets.xcassets"或"Resources"文件夹,选择"Add Files to ResourcesBundle",然后选择要添加的资源。记得勾选"Copy items if needed",以确保文件被复制到Bundle中。 接下来,...
2. 分别复制 [DragonBones 公共库源码](../DragonBones/src/)、[DragonBones Unity 库源码](./src/)、[第三方库源码](../3rdParty/) 中的所有文件夹和文件到项目的 Assets/Scripts 文件夹下。 3. 运行项目。 ## ...
6. `assets`:这个文件夹通常用于存储应用的非资源文件,如原始的文本、音频、数据文件等,这些文件在编译时不会被处理,而是原样复制到APK中。 7. `src`:源代码目录,通常包含Java代码或者Kotlin代码,用于实现...
然后,把需要的文件直接复制过来,包括 assets、libs、res 三个文件夹。并找到这三个文件,一起复制过来。 在 libs 文件夹下,我们需要将 ShareSDK.jar 放置其中,这里都是 jar 文件,其中有大部分都是用不到的,把...
- 树目录和文件列表一致性保持 更新相互通知 ####fix bug:(bug解决和程序优化) - 桌面重命名bug - 统一对话框部分bug - php notice 提示解决 - ajax返回非json 则展示服务错误的返回 - 所有入口都加入index...
`assets`目录下的资源会被编译处理,而`static`目录的资源会被直接复制到构建后的静态文件夹,可用于放置如自定义样式文件、图片等。 总的来说,这个Nuxt版的Vue-Quill-Editor demo提供了一个集成示例,帮助开发者...
StreamingAssets是Unity的一个特殊目录,它在构建项目时会被原封不动地复制到构建的目标平台上,通常用于存放不会被版本控制的资源,如配置文件、数据库或动态更新的内容。 为了自定义JSON的编写格式,我们需要了解...
在提供的文件列表中,“androidproject”可能是指整个项目的根目录,包含了上述所有提到的文件和目录。为了进一步了解和使用这个项目,你需要解压文件并使用Android Studio打开,这样可以查看和编辑源代码,编译并...
- 将生成的 "硅谷商城" 文件夹中的 assets 目录复制到你的项目主目录下的 assets 目录。 - 将 "硅谷商城" 中的 libs 文件夹中的 jar 包添加到你的项目库中。 - 把 res 目录中的配置文件复制到你的项目资源文件夹...
- 从`demo`中复制`nav`目录下的所有文件到项目,并添加到项目中。 - 修改首页控制器,实现标题的展示效果。 7. **轮播图实现** - 将`swiper`文件夹中的所有文件拷贝到项目中。 - 在首页控制器中进行相应修改以...
通常包含项目的根目录结构,包括`lib`(源代码)、`assets`(资源文件)、`pubspec.yaml`(项目配置)、`screens`(屏幕组件)、`widgets`(自定义小部件)、`services`(服务类,如网络请求)等文件夹。开发者可能...
- 将转换后的`initlogo.rle`文件复制到`android\out\target\product\sdkDemo\root`目录下。 - 如果没有放置该文件,则默认显示的是`init.Cinit.c.bak`文件中的内容。 4. **重新编译:** - 执行`make firmware`...
通过安装Chirpy时,Jekyll只能从主题的gem读取_includes , _layout , _sass和assets文件夹中的文件以及_config.yml文件的一小部分(使用命令bundle info --path jekyll-theme-chirpy查找)。 要完全使用Chirpy的...
将Cubizer文件夹复制到Assets文件夹 将演示文件夹复制到资产文件夹 双击一个Demo / level1.unity文件 从标准资产导入字符包 要求: Unity 2017.2.0或更高版本。 特征 : 基于立方体的无限地形生成 Voxel文件导入 ...