我通过以下方式创建了一个新文件夹“sdcard/dd”:
File album = new File(albumPath);
if (album.exists()) {
Log.d(TAG, albumPath + " already exists.");
} else {
boolean bFile = album.mkdir();
}
再次,我用相同的代码创建了第二个文件夹“sdcard/DD”,但是,这次 album.exists() 返回 true,这表明“dd”等于“DD”。
有人知道为什么 File.exists()
不能检查文件夹名称的大小写吗?谢谢!
最佳答案
虽然 Linux 以及 Android 在文件名方面通常区分大小写,但通常用于 SD 卡、内存棒等的 FAT 文件系统不区分大小写。因此,Android 在处理这些文件系统上的文件时不会区分情况。
所以如果你有两个文件,/sdcard/file
(在 SD 卡上)和 /data/file
(在内部文件系统上),你会得到结果如下:
new File("/sdcard/file").exists(); // true
new File("/sdcard/FILE").exists(); // true, /sdcard is a case-insensitive file system
new File("/data/file").exists(); // true
new File("/data/FILE").exists(); // false, /data is a case-sensitive file system
关于android - Android File.exists() 不区分大小写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6502712/