我知道它只是化妆品,但下面的代码应该重命名我的目录,但事实并非如此。差异只是一些大写 - 但是在文件名方面,Android完全区分大小写。像Linux一样也是如此。 重命名给出了真实的结果,表明操作成功。但是,有问题的目录没有重命名,它仍然有两个大写字母D. 我以前使用相同的代码从/ DeadDropDroid重命名为/.DeadDropDroid,并且工作正常。每次运行以下代码时,日志都会显示“成功”。
oldBasePath = new File (Environment.getExternalStorageDirectory()+ "/.DeadDropDroid/");
if (oldBasePath.exists()) {
if (oldBasePath.renameTo(new File(Environment.getExternalStorageDirectory()+ "/.DeaddropDroid/")))
Log.v(TAG, "Rename success.");
else
Log.v(TAG, "Rename fail.");
}
答案 0 :(得分:3)
查看this对类似问题的回答。关键内容是
默认情况下,SD卡格式化为FAT,保留大小写但不区分大小写。
我做了一些检查,可以确认提到的File
方法在SD卡上工作'不区分大小写'。您甚至无法检查oldBasePath.exists()
,因为如果存在LowerCase目录版本而不是UpperCase版本,ist也将返回true
。您必须阅读目录内容,并将您收到的文件/目录名称与模式进行比较。
重命名也是一个两步法(通过临时文件),例如
.DeadDropDroid -> .DeadDropDroid_tmp -> .DeaddropDroid