我有一个文件夹List<String>
的文件名和String
的某个文件名。我想检测文件名是否在列表中,但需要尊重底层文件系统是否区分大小写的属性。
有没有简单的方法可以做到这一点(除了检查System.getProperty("os.name", "").toLowerCase().indexOf("windows")!=-1
的“黑客”)? ; - )
答案 0 :(得分:11)
不要使用字符串来表示您的文件;使用java.io.File:
http://java.sun.com/javase/6/docs/api/java/io/File.html#equals(java.lang.Object)
答案 1 :(得分:2)
boolean isFileSystemCaseSensitive = !new File( "a" ).equals( new File( "A" ) );
答案 2 :(得分:2)
看起来您可以使用IOCase
。
答案 3 :(得分:1)
写一个名为“HelloWorld”的文件;尝试读取名为“hELLOwORLD”的文件?
答案 4 :(得分:0)
我认为任何现有示例都无法正确处理此问题,您需要将文件写入磁盘。
private boolean caseSensitivityCheck() {
try {
File currentWorkingDir = new File(System.getProperty("user.dir"));
File case1 = new File(currentWorkingDir, "case1");
File case2 = new File(currentWorkingDir, "Case1");
case1.createNewFile();
if (case2.createNewFile()) {
System.out.println("caseSensitivityCheck: FileSystem of working directory is case sensitive");
case1.delete();
case2.delete();
return true;
} else {
System.out.println("caseSensitivityCheck: FileSystem of working directory is NOT case sensitive");
case1.delete();
return false;
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}