我通过以下方式创建了一个新文件夹"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()不能检查文件夹名称的情况吗?谢谢!
发布于 2011-06-28 07:11:06
Linux和Android通常在文件名方面是区分大小写的,而FAT文件系统(通常用于SD卡、记忆棒等)是不区分大小写的。因此,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发布于 2018-12-11 05:39:08
根据Android文档,Android支持具有传统存储的设备,传统存储被定义为具有不可变POSIX权限类和模式的不区分大小写的文件系统‘https://source.android.com/devices/storage/traditional.html。
发布于 2011-06-28 07:11:07
存在的文件区分大小写。我希望您不是删除您创建的第一个文件夹(sdcard/dd),就是有一些奇怪的sdcard文件大小写不敏感(它很胖,不区分大小写,但这真的不重要)。
https://stackoverflow.com/questions/6502712
复制相似问题