His*_*His 17 java path absolute-path
无论如何,在Java中,无论程序当前运行的平台是什么,都要确定给定路径是否是绝对路径.所以,我想要的可能是以下示例:
在Linux上:
new File("/home/").isAbsolute() // Should return true.
new File("C:/My Documents").isAbsolute() // Should *also* return true.
Run Code Online (Sandbox Code Playgroud)
在Windows上:
new File("C:/Documents").isAbsolute() // Should return true.
new File("/home/").isAbsolute() // Should *also* return true.
Run Code Online (Sandbox Code Playgroud)
我可以编写一些代码来解决这个问题,但我只是想知道是否有人知道用Java提供的内置类来解决这个问题.或者有没有人来过这个问题?你是怎么解决的?
谢谢!
Kev*_*ose 10
不.
有一些底层的FileSystem类(也就是Java 7,但它们也存在于它之前)暴露了isAbsolute(),但它们不是公共的 - 所以你不应该使用它们,即使你做了你的代码也是充满了反射垃圾 - 只有"正确的"操作系统包含在JRE中,所以无论如何你都必须围绕它们进行编码.
以下是isAbsolute(...)的Java 7实现,以帮助您入门.请注意,File.getPrefixLength()是包私有的.
public boolean isAbsolute(File f)
{
int pl = f.getPrefixLength();
return (((pl == 2) && (f.getPath().charAt(0) == slash))
|| (pl == 3));
}
Run Code Online (Sandbox Code Playgroud)
public boolean isAbsolute(File f)
{
return (f.getPrefixLength() != 0);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12501 次 |
| 最近记录: |