Ответ 1
Не используйте строки для представления ваших файлов; используйте java.io.File:
http://java.sun.com/javase/6/docs/api/java/io/File.html#equals(java.lang.Object)
У меня есть List<String>
имен файлов из папки и определенного имени файла как String
. Я хочу определить, находится ли имя файла в списке, но нужно учитывать свойство базовой файловой системы, зависящее от регистра.
Есть ли простой способ сделать это (кроме "взлома" проверки System.getProperty("os.name", "").toLowerCase().indexOf("windows")!=-1
)?; -)
Не используйте строки для представления ваших файлов; используйте java.io.File:
http://java.sun.com/javase/6/docs/api/java/io/File.html#equals(java.lang.Object)
boolean isFileSystemCaseSensitive = !new File( "a" ).equals( new File( "A" ) );
Похоже, вы можете использовать IOCase
.
Напишите файл с именем "HelloWorld"; попытаться прочитать файл с именем "hELLOwORLD"?
Я не думаю, что какой-либо из существующих примеров действительно обрабатывает это должным образом, вам нужно записать файл на диск.
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);
}
}