gpt4 book ai didi

java - 当给定相对或绝对路径以及相对于它的绝对路径时,如何获取文件的绝对路径

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:06 24 4
gpt4 key购买 nike

假设我有一个绝对的“基本”路径:

/home/someone/dir1/dir2/

用户可以向我传递一个新路径,该路径可以是绝对路径,也可以是相对于基本路径的相对路径,因此以下内容均有效:

..
/home/someone/dir1/

如何让 java 为我提供正确的绝对路径,即对于这两种情况:

/home/someone/dir1/

并以独立于平台的方式执行此操作?

我尝试了以下方法:

File resolvedFile = new File((new File(basePath).toURI().resolve(new File(newPath).toURI())));

但是,当 newPath 是相对的时,newFile(newPath) 会根据当前工作目录自动解析它,而不是我想要提供的 basePath。

有什么想法吗?非常感谢!

最佳答案

回答我自己的问题..

似乎可以在 java 7 中使用 Path 来完成:

Path p1 = Paths.get("/home/joe/foo");
// Result is /home/joe/foo/bar
System.out.format("%s%n", p1.resolve("bar"));

由于我无法为我的 mac 10.5.8 获​​取 java 7,所以我将使用类似的东西(注意未经过彻底测试!):


static String getAbsolutePath(String basePath, StringrelativeOrAbsolutePath) 抛出 IOException {



 boolean isAbsolute = false;
文件relativeOrAbsoluteFile = new File(relativeOrAbsolutePath);

如果(relativeOrAbsoluteFile.isAbsolute()){
是绝对=真;
}

如果(是绝对){
返回相对或绝对路径;
}
别的 {
文件绝对文件 = 新文件(basePath,relativeOrAbsolutePath);
返回绝对文件.toString();
}

}

关于java - 当给定相对或绝对路径以及相对于它的绝对路径时,如何获取文件的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15739007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com