我遇到以下问题。我正在编写一个模仿 Windows 命令提示符的程序。例如,用户输入:cd C:\\Intel
,在我的代码中我这样解决它:
setCurrentPath(Paths.get(string));
其中setCurrentPath
是一种将当前路径设置为输入路径(字符串)的方法。我的问题是,如果输入的路径是相对的,如何设置新路径。例如,如果我当前位于 C:\\Intel
并且用户想要转到 C:\\Intel\\Logs
并输入:cd Logs
(而不是 C:\\Intel\\Logs
)。我想 Java 中构建的一些方法可以帮助我,但我只学习 Java 几个月,所以我不知道它们。请注意,我将威胁路径作为字符串。
最佳答案
您可以测试来自用户的路径是否是绝对路径,并根据结果直接设置它,或使用 Path.resolve
.
演示:
Path currentPath = Paths.get("C:\\projects\\project1");
String pathFromUser = "..\\project2";
Path userPath = Paths.get(pathFromUser);
if (userPath.isAbsolute()){
currentPath = userPath;
}else{//is relative
currentPath = currentPath.resolve(userPath).normalize();
}
System.out.println(currentPath);
输出:C:\projects\project2
关于java - 如何在Java中从字符串编写相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538482/