java - 不区分大小写的 File.equals 在区分大小写的文件系统上

标签 java file cross-platform filesystems case-sensitive

我有一个字符串形式的文件路径。在 Java 中,我需要确定该文件是否存在于文件系统中(并且我们的代码需要跨平台,因为它可以在 Windows、Linux 和 OS X 上运行)。

问题是文件路径的大小写和文件本身可能不匹配,即使它们确实表示相同的文件(大概这是因为它们起源于 Windows 并且没有注意到差异)。

例如,我有一个文件路径“ABC.txt”。文件系统中存在名为“abc.txt”的文件。以下代码将在 Windows 上返回 true,但在 Linux 上返回 false:

new File("ABC.txt").exists();

确定文件是否存在的最佳方法是什么,如果存在则返回文件系统上文件的句柄?

最佳答案

从目录 (File.list()) 中获取文件列表并使用 equalsIgnoreCase() 比较名称。

关于java - 不区分大小写的 File.equals 在区分大小写的文件系统上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1297879/

相关文章:

android - 将 Flash 游戏导出为 "embedables"到 iOS 和 Android

json - 发生异常-错误JSON API-Flutter

java - Spring boot tomcat 使用+4000% CPU

java - Java 中 enum 是一种类型吗

file - 如何监视目录中新上传的文件?

java - RandomAccessFile 长度多久更新一次?

c++ - 跨平台 C++ 工具链

java - 调用 Write() 时蓝牙套接字 OutputStream NullPointerException

Java 正则表达式验证\[]

java - 当输入来自多个文件时如何使用参数化 junit?