gpt4 book ai didi

Java解析具有不同工作目录的文件路径

转载 作者:行者123 更新时间:2023-12-01 09:27:54 24 4
gpt4 key购买 nike

我有一个包含多个路径的文件,例如 . (相对)或 /Users/...../ (绝对)。我需要解析相对于包含路径的文件目录而不是工作目录的路径,并创建正确的文件实例。我无法更改 Java 程序的工作目录,因为这会改变其他组件的行为,而且我还必须解析几个文件。我认为 public File(Stringparent, String child) 没有达到我想要的效果,但我可能是错的。该文档非常困惑。

示例:

file xy located under /system/exampleProgram/config.config has the following content:
.
/Users/Name/file
./extensions

i want to resolve these to:
/system/exampleProgram/
/Users/Name/file
/system/exampleProgram/file/

最佳答案

所以,我假设您有权访问您打开的文件的路径(如果是文件描述符,则通过 File.getAbsolutePath() 或通过正则表达式或其他东西)...

然后,要将相对路径转换为绝对路径,您可以使用打开的文件创建新的文件描述,如下所示:

File f = new File(myOpenedFilePath);
File g = new File(f, "./extensions");
String absolutePath = g.getCanonicalPath();

当您创建带有 File 的文件时对象和一个String ,Java 对待String作为相对于 File 的路径作为第一个参数给出。 getCanonicalPath将摆脱所有多余的...等等。

编辑:正如 Leander 在评论中解释的那样,确定路径是否相对(以及是否应该转换)的最佳方法是使用 file.isAbsolute() .

关于Java解析具有不同工作目录的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39691657/

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