15

我有一个List<String>文件夹中的文件名和某个文件名作为String. 我想检测文件名是否在列表中,但需要尊重底层文件系统是否区分大小写的属性。

有什么简单的方法可以做到这一点(除了检查的“黑客” System.getProperty("os.name", "").toLowerCase().indexOf("windows")!=-1)?;-)

4

5 回答 5

12

不要使用字符串来表示您的文件;使用 java.io. 文件:

http://java.sun.com/javase/6/docs/api/java/io/File.html#equals(java.lang.Object)

于 2009-08-17T14:15:28.880 回答
2
boolean isFileSystemCaseSensitive = !new File( "a" ).equals( new File( "A" ) );
于 2010-06-17T22:02:02.850 回答
2

看起来你可以使用IOCase.

于 2010-12-02T03:39:46.513 回答
1

编写一个名为“HelloWorld”的文件;尝试读取名为“hELLOwORLD”的文件?

于 2009-08-17T14:01:15.653 回答
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);
    }
}
于 2019-10-11T23:27:45.787 回答