我正在运行一些查看文件路径并搜索路径中最后一个斜线的索引的 Java 代码。我遇到的问题是,如果用户在 Mac OSX 和 Windows 中,根据使用的不同斜线,代码的行为会有所不同。例如:
dir.getPath().lastIndexOf('\\'); //for windows
dir.getPath().lastIndexOf('/'); //for mac
是否有某种稳健但简单的方法可以检查 Java 代码中哪一行是合适的?我想我可以检查一个,看看它是否返回 -1,然后使用另一个(如果也是,则路径有问题)但在这一点上,我超出了解决方法,只是对如何最好地处理感到好奇这类问题是因为我认为这是很常见的事情。提前致谢!
编辑:这是我目前的解决方法:
int ind = dir.getPath().lastIndexOf('\\') != -1 ? dir.getPath().lastIndexOf('\\') : dir.getPath().lastIndexOf('/');
最佳答案
您可以使用 System.getProperty("os.name")
和类似的东西,
String osName = System.getProperty("os.name");
if (osName.toLowerCase().contains("mac")) {
// It's a mac.
} else if (osName.toLowerCase().contains("win")) {
// It's windows.
} else {
// Other. Linux, AIX, etc.
}
但你真的应该使用 File.separatorChar
这是系统相关的默认名称分隔符。
int ind = dir.getPath().lastIndexOf(File.separatorChar);
关于java - 如果在 Mac OSX 与 Windows 中执行特定的 java 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643937/