恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述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()
无法检查文件夹名称的情况?谢谢!答案虽然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
另一答案文件存在区分大小写。我不知道你是不是要么删除你创建的第一个文件夹(
sdcard/dd
),或者有一些奇怪的sdcard文件不区分大小写(它是FAT,它不区分大小写,但这真的不重要)。另一答案例如,在Windows中试试这个。文件名不区分大小写。就像linux的情况一样(android基于linux)。浏览目录也被识别为不区分大小写。
【Android File.exists()不区分大小写吗()】所以dd和DD都被认为是相同的路径。
另一答案根据Android文档,Android支持具有传统存储的设备,传统存储被定义为具有不可变的POSIX权限类和模式的不区分大小写的文件系统。 https://source.android.com/devices/storage/traditional.html
另一答案可以区分大小写创建文件,即使通过ftp也可以区分大小写,但exists()方法无法区分。这就是Android 5.1上/ storage / emulated / 0 / somepath中的情况。我认为这是不一致的行为。
推荐阅读
- 从Android中的Intent中选择时,文件返回空(“”)
- 我希望我的Android应用程序将数据同步到MYSQL以用于我的在线ERP
- Android Xamarin-使用SQLite时打开计划的通知会停止重复并崩溃
- 禁用插件并使用./gradlew(app:dependencies检查依赖关系树)
- Android 8或更高版本使用Firebase Performance SDK在Android Oreo上崩溃的应用程序
- AppComponent中的ERROR不能用作条目组件
- 构建gradle时出错 - com.google.android.gms(各种其他库正在请求play-services-basement)
- android(fcm在库模块中)
- Azure Bot服务示例AuthenticationBot登录卡无法正常工作(application / vnd.microsoft.card.oauth)