android文件系统区分大小写的问题

Android File.exists()有大小写区分吗?

我创建了一个新的文件 "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()方法不能检查出文件夹名的大小写呢?

2个回答

按赞数排序 
yongyong_21
yongyong_21    2013.01.04 17:42
已采纳

如果你有两个文件,/sdcard/file (在 SD卡)和 /data/file (在内部文件系统), 你会得到以下结果:

new File("/sdcard/file").exists(); // true
new File("/sdcard/FILE").exists(); // true, /sdcard是一个区分大小写的文件系统 
new File("/data/file").exists(); // true
new File("/data/FILE").exists(); // false, /数据是区分大小写的文件系统
cytown
Billy_崔海斌    2012.12.28 15:35

原因在于filesystem是fat32,而fat32是不支持区分大小写的。
所以就算你判断出DD不存在,还是不能去创建DD的目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值