android - Android File.exists() 不区分大小写吗?

标签 android file case-sensitive exists mkdir

我通过以下方式创建了一个新文件夹“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/

相关文章:

android - 构建配置和 Android NDK

java - 当我按下设置按钮时崩溃

java - 拆分字符串类型并放入循环中的新数组中

google-chrome - Chrome 开发者工具 : non-case-sensitive search

mysql - 我们所有的 MySQL 约束都变成了小写。什么会导致这种情况?

android - 如何为 Android Wear 应用程序开发 UI 布局

android - 发送数据包时 XMPP MessageEventManager 出错?

java - 如何安全地读取Java中的属性文件?

c++ - std::fclose() 的一个非常奇怪的问题

sql-server - SQL Server 不区分大小写的查询