jwa*_*ell 14 java filesystems cross-platform file case-sensitive
我有一个String形式的文件路径.在Java中,我需要确定文件系统上是否存在该文件(并且我们的代码需要在Windows,Linux和OS X上运行时是跨平台的).
问题是文件路径和文件本身的情况可能不匹配,即使它们确实代表相同的文件(可能这是因为它们起源于Windows并且没有注意到差异).
例如,我的文件路径为"ABC.txt".文件系统上存在名为"abc.txt"的文件.以下代码将在Windows 上返回true但在Linux 上为false:
new File("ABC.txt").exists();
Run Code Online (Sandbox Code Playgroud)
确定文件是否存在以及是否存在返回文件系统上文件句柄的最佳方法是什么?
此方法将告诉您是否存在具有确切名称的文件(路径部分不区分大小写).
public static boolean caseSensitiveFileExists(String pathInQuestion) {
File f = new File(pathInQuestion);
return f.exists() && f.getCanonicalPath().endsWith(f.getName());
}
Run Code Online (Sandbox Code Playgroud)