java - 如何在Java中从字符串编写相对路径

标签 java shell path

我遇到以下问题。我正在编写一个模仿 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/

相关文章:

python - 使用另一个名称将文件复制到同一目录

java - 是否可以将服务或端点代理作为静态成员实例?

java - 无法验证规则集 jar

mysql - 如何剪切并打印不同主机名的第一个单词?

android - 通过 ADB 以 root 身份启动脚本

python - 安装了 python 2.7.3,我所有的库都在 python 2.6 上。

java - 带有java的特定语言虚拟键盘

Java swing Loader 图像无法正常显示?

bash - 从 Bash 脚本中的路径获取文件名

c# - Path.Combine 的 URLs?