文件夹的 Java 相对路径,不使用文件



我正在使用Mac,我是新手。这是我的问题:

在 Java 中,我需要一个文件夹作为文件对象包含在内。当我尝试这个时:

File firefoxProfileFolder = new File("/Users/prime/work/dmall/selenium/src/test/resources/firefoxprofile");

它工作正常。此代码位于文件:/Users/prime/work/dmall/selenium/src/test/java/com/dmall/utils/WebUtil.java

但是当我尝试这个时:

File firefoxProfileFolder = new File("../../../../resources/firefoxprofile");

我无法加载文件夹。因此,从此文件到该文件夹的相对路径似乎不起作用。那我该怎么办?我做错了什么?

我需要使用相对路径,因为这段代码将从服务器运行,我不知道绝对路径将是什么。

最有可能的是,您在相对路径上犯了错误。它应该有效。

为了检查这一点,您可以使用 new File('testDir').mkdirs() 创建新的测试目录,并查看 - Java 将在哪里创建此目录。它会在预期的地方还是其他地方?

您可以使用 firefoxProfileFolder.getCanonicalPath() 并检查它是否与 字符串 s = new File("/Users/prime/work/dmall/selenium/src/test/resources/firefoxprofile").getCanonicalPath();
如果路径不同,则您的相对路径为假...

您可以在运行时获取目录:

URL url = ClassLoader.getSystemResource("relative to/classpath/resources/firefoxprofile");
File file = new File(url.getFile()); // the directory
....    

考虑到启动脚本的当前目录,您实际上需要使用目录路径。 即您的根目录是此脚本的目录。

相关内容

  • 没有找到相关文章

最新更新