在做开发过程中,有时候,需要将某几个,或者某个资源从一个地方拷贝到另外一个地方:
如何处理呢?
1、最最不靠谱的方式就是一个个分开拷贝到android的drawable,drawable-xhbpi,drawable-xxhbpi中。效率实在底下。
2、写代码来重命名和移动才是比较靠谱的。因为我不会js,python这样子的脚本语言。我使用java来写,也是效果一样。
项目结构:
代码:
import java.io.* import java.util.* import java.io.File fun main() { // 1.读取配置文件 val pro = Properties() try { val directory = File("")//参数为空 val courseFile = directory.canonicalPath val propertiesPath = "$courseFile\src\move.properties" println("配置文件路径:$propertiesPath") val fis = FileInputStream(propertiesPath) val isr = InputStreamReader(fis, "GBK") pro.load(isr) fis.close() isr.close() } catch (e: FileNotFoundException) { System.err.println("当前配置文件不存在") return } catch (e: IOException) { System.err.println("读取配置文件失败") return } // 2.读取配置文件内容 // 需要去掉文件名中的字符 val imgNameString = pro["imgName"] as String // 资源文件的目录 val srcDirName = pro["srcDir"] as String // 输入文件的目录 val targetDir = pro["targetDir"] as String println("imgName:$imgNameString") println("srcDirName:$srcDirName") println("targetDir:$targetDir") val imageNameList = imgNameString.split(",") val srcDirFile = File(srcDirName) println("资源文件目录是否存在:${srcDirFile.absolutePath} 是否存在:${srcDirFile.exists()}") println("资源文件目录是否存在:${srcDirFile.absolutePath} 是否是目录:${srcDirFile.isDirectory}") if (srcDirFile.isFile) { System.err.println("资源文件应该配置为目录:$srcDirName") return } // 3.判断目标目录是否存在,不存在,则创建 val targetDirFile = File(targetDir) if (!targetDirFile.exists()) { val isSuccess = targetDirFile.mkdirs() println("当前目标目录不存在,是否创建成功:$isSuccess") if (!isSuccess) { System.err.println("当前目标目录创建失败:${targetDirFile.absolutePath}") return } } val srcFileList = srcDirFile.listFiles() if (srcFileList == null) { System.err.println("该目录下未找到文件:$srcDirName") return } // 4.将资源拷贝到目标目录 val imgDirList = mutableListOf<String>("drawable", "drawable-mdpi", "drawable-hdpi", "drawable-xhdpi", "drawable-xxhdpi", "drawable-xxxhdpi") for (imgName in imageNameList) { if (imgName.isEmpty()) continue for (f in imgDirList) { val imgSrcName = srcDirName + "\" + f + "\" + imgName val imgSrcFile = File(imgSrcName) if (imgSrcFile.exists()) { val imgTargetName = targetDir + "\" + f + "\" + imgName val imgTargetFile = File(imgTargetName) println("$imgSrcName copyTo $imgTargetName") imgSrcFile.copyTo(imgTargetFile, overwrite = true) } } } println("!!!!!!!!!!!!!!!!!处理成功!!!!!!!!!!!!!!!!!") }
配置文件 move.properties :
imgName=ic_action_copy.png,ic_action_delete.png
srcDir=D:\Work\WorkSpace\AndroidDemo\ChatKit-master\sample\src\main\res
targetDir=D:\temp