不管程序当前运行的是什么平台,在Java中有没有办法找出给定路径是绝对的还是不是的。因此,我想要的可能是类似以下示例的内容:
在Linux上:
new File("/home/").isAbsolute() // Should return true.
new File("C:/My Documents").isAbsolute() // Should *also* return true.
在Windows上:
new File("C:/Documents").isAbsolute() // Should return true.
new File("/home/").isAbsolute() // Should *also* return true.
我也许可以编写一些代码来解决这个问题,但我只是想知道是否有人知道Java中提供的内置类来解决这个问题。或者有没有人遇到过这个问题?你是怎么解决这个问题的?
谢谢!
发布于 2015-04-24 05:50:32
在Java 7中:
new File(path).isAbsolute()
发布于 2014-07-30 08:15:56
我使用Apache FilenameUtil来解决这个问题-
public static boolean isAbsolute(final String path) {
return FilenameUtils.getPrefixLength(path) != 0;
}
从技术上讲,这是返回!相对。这对我的目的来说很好。
发布于 2013-09-11 19:09:47
我最终使用了这个(在Java 6中):
private static boolean testPath(String path) {
int prefixLen = FilenameUtils.getPrefixLength(path);
if (testPathWin(path, prefixLen) || testPathLinux(prefixLen))
return true;
else
return false;
}
private static boolean testPathWin(String path, int prefixLen) {
if (prefixLen == 3)
return true;
File f = new File(path);
if ((prefixLen == 2) && (f.getPath().charAt(0) == '/'))
return true;
return false;
}
private static boolean testPathLinux(int prefixLen) {
return (prefixLen != 0);
}
https://stackoverflow.com/questions/1025285
复制相似问题