java不区分大小写_git 和 java 不区分文件名的大小写

今天遇到一个特别奇怪的事情,往 github 提交代码的时候,显示已经提交成功,没有修改,但是当别人拉取代码后,项目编译不过去。原因是:UI 给的图片命名一开始是有中划线和大写的,当时直接添加到 github 里面去了。但是本地项目编译不过去,所以本地用脚本和手动修改方式,将大批的文件都修改好了。本以为提交上去了,但是没想到 git 忽略了本地的文件名的大小写,虽然本地修改成功了,但是 git 识别不了。

因为工作关系是两台电脑,所以在另外一台电脑也遇到了相同的事情,于是打算用java程序处理。 但是在调试的过程中,发现 file.exist() ,也不区分大小写。

git 的解决办法是:

git config core.ignorecase false

让 git 支持 大小写的识别。

java 的办法是:

不使用 file.exist() 判断,直接 file.rename()。

java 参考代码:

/**

* FileNameTest

* Created by WangQing on 2018/1/23.

*/

public class FileNameTest {

private static final String TAG = "FileNameTest";

@Test

public void test_cast() {

// String path = "/Users/WangQing/Android_Pro/KaiDunPro/app/src/main/res";

String path = "/Users/WangQing/Desktop/pic";

dirList(path);

}

private void dirList(String path) {

List list = FileUtils.listFilesInDir(path, true);

for (File f : list) {

if (f.isDirectory()) {

dirList(f.getPath());

continue;

}

String fileName = FileUtils.getFileName(f);

if (!fileName.toLowerCase().equals(fileName) || fileName.contains("-")) {

String oldFileName = fileName;

if (fileName.contains("-")) {

fileName = fileName.replaceAll("-", "_");

}

String newFileName = fileName.toLowerCase();

File file = new File(f.getParent() + "/" + newFileName);

boolean b = f.renameTo(file);

System.out.println("test_cast: 原来的文件名是:" + oldFileName + ", 新文件名是:" + newFileName + ", rename state:" + b);

}

}

}

}

依赖:

compile 'com.github.ZhuoKeTeam:zhuoke-sdk:1.0.0'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值