英文:
Why does relative path keep changing and how to prevent it?
问题
我使用Java创建一个名为"myCoolFolder"的文件夹,方法如下:
Files.createDirectories(Path.of("MyCoolFolder"));
这是一个相对路径。令我惊讶的是,这个文件夹有时会在文件夹结构中创建得更深或更浅一级,我不知道这种可疑行为的原因。也许它取决于我如何运行项目以及它认为的 '工作目录',但我并不确定。如何确保它始终是相同的文件夹?
英文:
I use Java to create a folder "myCoolFolder" like this:
Files.createDirectories(Path.of("MyCoolFolder"));
This is relative path. What surprises me is this - the folder sometimes is created one level deeper or higher in the folder structure and I do not know the reason for that suspicious behavior. Maybe it depends on the way I run the project and what it thinks is the 'working directory', but I'm not really sure about that. How can I make sure it is always the same folder?
答案1
得分: 2
相对路径名是相对于解析它的进程的工作目录来解析的。
如果它在不同的时间解析为不同的位置,那么要么该进程(应用程序)是在不同的工作目录中启动的,要么(可能)它正在改变其工作目录。(Java进程没有一种可移植的方式来更改自己的工作目录。)
我该如何确保它始终是相同的文件夹?
要么确保使用相同(正确)的工作目录启动Java应用程序,要么为文件夹使用绝对路径名。
英文:
A relative pathname is resolved relative to the working directory of the process that resolves it.
If it is resolving to different locations at different times then either the process (application) is started with (in) a different working directory, or (possibly) it is changing its working directory. (There isn't a portable way for a Java process to change its own working directory.)
> How can I make sure it is always the same folder?
Either make sure that you launch your Java application with the same (correct) working directory, or use an absolute pathname for the folder.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论