java - 在 Java 代码中使用文件路径

标签 java servlets filepath

我提到了这个example并创建了一个 servlet 应用程序。

它与代码中提到的 TMP_DIR 和 DEST_DIR 路径完美配合(我在 C 驱动器中创建了一个名为 tmp 的文件夹,并且我还创建了一个名为 files 在我的应用程序文件夹中。

现在我将代码转移到 Linux 机器上,这不起作用,因为那里没有名为 C: 的驱动器。我尝试将代码的 c:\\tmp 替换为我的应用程序文件夹中的 /tmp(并创建了一个文件夹 tmp)。但它不起作用。我怎样才能使这段代码通用?请指教。

最佳答案

如果您想要的是临时目录,请使用 http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html并查找 getTempDirectory()。这应该可以在任何地方工作

所以你需要系统提供的系统临时目录。您可以通过其路径或实际文件来获取它。 (IOUtils 提供了这两种方法)。这是 IOUtil 文档: 获取临时目录

public static File getTempDirectory()

    Returns a File representing the system temporary directory.

    Returns:
        the system temporary directory.

所以如果你写:

File myTempFile = IOUtils.getTempDirectory();

那么 myTempFile 将是您要写入的位置。

如果某些应用程序按名称请求目录,那么您可以使用 getTempDirectoryPath() 这将给出路径名。

在你的例子中我会写:

private static final String TMP_DIR_PATH = IOUtils.getTempDirectoryPath();

或者使用@dogbane的方法:

private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir");

我希望他们给出相同的答案。

如果您仍然感到困惑,请继续询问 - 这就是 SO 的用途!

更新:如果您正在使用文件做任何事情,那么熟悉 Apache 的 FileUtils 和 IOUtils 是值得的。有几件事 JDK 做得不好或自然而然,Apache 提供了更好的支持。

关于java - 在 Java 代码中使用文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4080487/

相关文章:

java - 运行 servlet 时出现“Batik 不在类路径中”错误

java - "cvc-complex-type.2.4.c: matching wildcard is strict, but no declaration can be found for element ' 上下文 :component-scan '."

android - 如何在jni中指定当前工作路径

java - 解决迷宫的最短路径

java - Hibernate:子集合的级联删除

java - 我们可以使用可序列化将一组对象从一个 Activity 传递到另一个 Activity 吗

Java Server Faces - 导入图像

java - 如何以编程方式获取部署地址?

filepath - 获取文件的 Wine 路径

WPF - 是否有类似于 PathCompactPath 的东西?