ssummeraw
2012-12-28 06:37
采纳率: 73%
浏览 8.9k

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 2013-01-04 09: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, /数据是区分大小写的文件系统
    
    点赞 评论
  • Billy_崔海斌 2012-12-28 07:35

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

    点赞 评论

相关推荐 更多相似问题