在做开发过程中,经常会遇到UI设计提供得资源文件如下所示:

经常把相同的文件有个@2x,@3x放到同一个目录中。

但是这并不是我们想要的,通常在android开发过程中,都是需要分别放到drawable,drawable-xhbpi,drawable-xxhbpi等等相对应的目录中。

如何处理呢?

1、最最不靠谱的方式就是一个个分开拷贝到android的drawable,drawable-xhbpi,drawable-xxhbpi中。效率实在底下。

2、写代码来重命名和移动才是比较靠谱的。因为我不会js,python这样子的脚本语言。我使用java来写,也是效果一样。

项目结构:

代码:

import java.io.*
import java.util.*
import java.io.Filefun main() {// 1.读取配置文件val pro = Properties()try {val directory = File("")//参数为空val courseFile = directory.canonicalPathval propertiesPath = "$courseFile\\src\\modify.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 deleteString = pro["delete"] as String// 资源文件的目录val srcDirName = pro["srcDir"] as String// 输入文件的目录val targetDir = pro["targetDir"] as Stringprintln("delete:$deleteString")println("srcDirName:$srcDirName")println("targetDir:$targetDir")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.循环遍历资源目录下的文件,重命名并移动到目标目录下for (f in srcFileList) {if (f.name.contains(deleteString)) {val newFileName = f.name.replace(deleteString, "")val newFile = File(targetDirFile.absolutePath + "\\" + newFileName)if (newFile.exists()) {val isDeleteSuccess = newFile.delete()if (!isDeleteSuccess) {System.err.println("删除已存在的文件失败")return}}println("新文件名:$newFileName" + " -- 新路径:${newFile.absolutePath}")f.copyTo(newFile)}}println("!!!!!!!!!!!!!!!!!处理成功!!!!!!!!!!!!!!!!!")
}

配置文件 modify.properties :

delete=@2xsrcDir=D:\\项目\\6.设计图\\icontargetDir=D:\\项目\\6.设计图\\icon2

转载于:https://www.cnblogs.com/hbolin/p/11320979.html

Adnroid提高效率之资源文件改名相关推荐

  1. Adnroid提高效率之资源移动

    在做开发过程中,有时候,需要将某几个,或者某个资源从一个地方拷贝到另外一个地方: 如何处理呢? 1.最最不靠谱的方式就是一个个分开拷贝到android的drawable,drawable-xhbpi, ...

  2. python 提高文件查询效率_Python 大量小文件存储提高效率的简单示例

    这篇文章主要为大家详细介绍了Python 大量小文件存储提高效率的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧 ...

  3. Hive优化【提高效率,减少资源浪费等】

    一.谨慎使用API 大数据场景下,必然是有大量的数据,因此大数据场景下并不怕数据量大,不行可多开几个节点,用以存储.但是大数据场景下,害怕的是数据倾斜,如果使用不当API,很容易造成数据倾斜问题. 容 ...

  4. 从 Gzip 压缩 SVG 说起 — 论如何减小资源文件的大小

    原文地址:Of SVG, Minification and Gzip 原文作者:Anton Khlynovskiy 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- ...

  5. 推荐7款Mac上能极大提高效率的软件,建议收藏!

    给大家分享7款Mac端鲜为人知但是能极大提高效率的软件,个个都非常强大,直接上干货!喜欢的话记得点赞支持哦~ 1.simplemind simplemind是一款跨平台思维导图工具,可以帮助思考.收集 ...

  6. 多线程在任何情况下均能提高效率吗?

    早段时间在网上看到一篇文章,其中就写了使用多线程模型实现文件的快速搜索.由此使我一直在考虑,多线程模型真的能够提高应用程序的效率吗?如果不能,那么多线程模型能干什么呢? 很多程序员一谈到提高应用程序效 ...

  7. 做一个项目,平时都用到哪些工具提高效率(上)

    做一个项目,平时都用到哪些工具提高效率(上)  转载 做.NET 相关项目,Visual Studio 2008,SQL Server 2000/2005是标准的配置,但是,除此之外,还可以应用哪些工 ...

  8. 提高效率的几个软件和快捷键

    自己常用的提高效率的几个软件和快捷键,这里做下总结,希望对一些朋友有用,也希望大家和我分享一些自己的方便快捷的软件和快捷方式: 1.软件 1.1 TextEditor 很方便特别是对网上文章的整理 1 ...

  9. 文件批量重命名的方法,图解很多文件改名

    如何批量重命名文件?是很多人经常为遇到的问题,如果靠人工一个一个去修改文件名,不仅改名慢,而且改起名来枯燥的很,使用批量重命名软件,可以提高90%的文件改名效率.下面,为大家介绍一款批量重命名文件的软 ...

最新文章

  1. kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结
  2. Storyboard里面的几种Segue区别及视图的切换:push,modal,popover,replace和custom
  3. python dataframe列数值相加,python合并dataframe中的行并将值相加
  4. java 线程状态_JAVA线程漫谈:线程状态与状态转换解析
  5. MQTT客户端连接服务器协议,mqtt客户端和服务器长连接
  6. ClassPathScanningCandidateComponentProvider 扫描给定包及其子包的类
  7. Visual Studio 2010 实用功能总结图解
  8. BZOJ 2843 极地旅行社
  9. 怎么让同网络计算机强制关机,知道局域网ip怎么关机
  10. 2017年网络犯罪现状分析报告
  11. 03-redis数据持久化
  12. 我的第一份博客,测试一下:P
  13. ORA-28002 the password will expire
  14. spring与jdk版本要求
  15. 仿今日头条项目——个人中心
  16. 搜苹果ipad版_春季课前第3轮评估! 安卓苹果电脑端全平台支持!
  17. java-opencv 米粒数_Python opencv学习音符的米粒数,返回每个米粒的位置面积和总米粒数的平均面积,pythonopencv,笔记,之数,并,一个,及,个数...
  18. html页面截取,HTML 网页截图
  19. 绕过微软WGA正版验证(蓝色五角星)的几则技巧
  20. 前端程序员应该理解的reduce方法,对你的js能力很有帮助

热门文章

  1. 【Minimum Depth of Binary Tree】cpp
  2. GPU虚拟化时代的到来(vGPU)!CitrixNVIDIA联合研发虚拟化共享GPU技术预览
  3. puppet全方位学习之总结
  4. lipo 制作通用版本 静态库
  5. 将MSHFLEXGRID表格中数据导入Excel方法
  6. Sedgwick Museum of Earth Sciences
  7. 大量词云出现的时候IO的负担很大
  8. UNITY相关的一些新功能,新想法
  9. C++新旧类型转换小记
  10. VS2017更新后 在WIN7上找不到 stdio.h等的问题