Java中如何从字符串编程相对路径
我有以下问题。我正在编写一个模拟Windows命令提示符的程序。例如,用户输入:Java中如何从字符串编程相对路径,java,shell,path,Java,Shell,Path,我有以下问题。我正在编写一个模拟Windows命令提示符的程序。例如,用户输入:cd C:\\Intel,在我的代码中,我这样求解: setCurrentPath(Paths.get(string)); 其中setCurrentPath是一种将当前路径设置为输入路径(字符串)的方法。我的问题是,如果输入的路径是相对的,如何设置新路径。例如,如果我当前在C:\\Intel中,用户希望转到C:\\Intel\\Logs并输入:cd Logs(而不是C:\\Intel\\Logs)。我想有一些用J
cd C:\\Intel
,在我的代码中,我这样求解:
setCurrentPath(Paths.get(string));
其中setCurrentPath
是一种将当前路径设置为输入路径(字符串)的方法。我的问题是,如果输入的路径是相对的,如何设置新路径。例如,如果我当前在C:\\Intel
中,用户希望转到C:\\Intel\\Logs
并输入:cd Logs
(而不是C:\\Intel\\Logs
)。我想有一些用Java构建的方法可以帮助我,但我只学了几个月的Java,所以我不知道它们。请注意,我将威胁路径设置为字符串。使用isAbsolute()
方法检查输入,如果isAbsolute()
方法返回false,则使用resolvePath
对于解析方法,必须首先检查路径是否为绝对路径的原因如下所述:
Path resolve(Path other)
根据此路径解析给定路径。如果另一个参数是
绝对路径然后这个方法简单地返回其他路径。如果另一个是
空路径,则此方法简单地返回此路径。否则
此方法将此路径视为目录,并解析
给定路径与此路径相对。在最简单的情况下,给定的路径
没有根组件,在这种情况下,此方法将连接
指定此路径的路径,并返回以
给定的路径。如果给定路径有根组件,则
解决方案高度依赖于实现,因此
未指明
使用isAbsolute()
方法检查输入,如果isAbsolute()
方法返回false,则使用resolvePath
对于解析方法,必须首先检查路径是否为绝对路径的原因如下所述:
Path resolve(Path other)
根据此路径解析给定路径。如果另一个参数是
绝对路径然后这个方法简单地返回其他路径。如果另一个是
空路径,则此方法简单地返回此路径。否则
此方法将此路径视为目录,并解析
给定路径与此路径相对。在最简单的情况下,给定的路径
没有根组件,在这种情况下,此方法将连接
指定此路径的路径,并返回以
给定的路径。如果给定路径有根组件,则
解决方案高度依赖于实现,因此
未指明
您可以测试来自用户的路径是否为绝对路径,并根据结果直接设置它,或者使用 演示:
输出:
C:\projects\project2
您可以测试来自用户的路径是否为绝对路径,并根据结果直接设置它,或者使用
演示:
输出:
C:\projects\project2
这应该与:cd..一起使用吗?因为在我的代码中,它只是更深入。例如,如果我在C:\Intel\Logs和write cd中。。转到:C\Intel\Logs\…有趣。它在我的Windows机器上运行良好。可能尝试使用不同的路径分隔符,因此不要使用\
而是使用/
。它似乎在这里起作用:它起作用了,我在试验代码并删除了。normalize()。现在,当我把它拿回来时,它就正常工作了。非常感谢您的时间和努力。这是否适用于:cd?因为在我的代码中,它只是更深入。例如,如果我在C:\Intel\Logs和write cd中。。转到:C\Intel\Logs\…有趣。它在我的Windows机器上运行良好。可能尝试使用不同的路径分隔符,因此不要使用\
而是使用/
。它似乎在这里起作用:它起作用了,我在试验代码并删除了。normalize()。现在,当我把它拿回来时,它就正常工作了。非常感谢您的时间和努力。