首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:如何在不考虑操作系统的情况下确定路径是否为绝对路径

Java:如何在不考虑操作系统的情况下确定路径是否为绝对路径
EN

Stack Overflow用户
提问于 2009-06-22 02:26:28
回答 3查看 13.8K关注 0票数 18

不管程序当前运行的是什么平台,在Java中有没有办法找出给定路径是绝对的还是不是的。因此,我想要的可能是类似以下示例的内容:

在Linux上:

代码语言:javascript
复制
new File("/home/").isAbsolute() // Should return true.
new File("C:/My Documents").isAbsolute() // Should *also* return true.

在Windows上:

代码语言:javascript
复制
new File("C:/Documents").isAbsolute() // Should return true.
new File("/home/").isAbsolute() // Should *also* return true.

我也许可以编写一些代码来解决这个问题,但我只是想知道是否有人知道Java中提供的内置类来解决这个问题。或者有没有人遇到过这个问题?你是怎么解决这个问题的?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2015-04-24 05:50:32

在Java 7中:

代码语言:javascript
复制
new File(path).isAbsolute()
票数 9
EN

Stack Overflow用户

发布于 2014-07-30 08:15:56

我使用Apache FilenameUtil来解决这个问题-

代码语言:javascript
复制
   public static boolean isAbsolute(final String path) {
      return FilenameUtils.getPrefixLength(path) != 0;
   }

从技术上讲,这是返回!相对。这对我的目的来说很好。

票数 3
EN

Stack Overflow用户

发布于 2013-09-11 19:09:47

我最终使用了这个(在Java 6中):

代码语言:javascript
复制
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);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1025285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档