在Java代码中使用文件路径

时间:2010-11-02 17:39:19

标签: java servlets filepath

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

TMP_DIR& amp;代码中提到的DEST_DIR路径(我在C盘中创建了一个名为tmp的文件夹,并且我在应用程序文件夹中创建了一个名为files的文件夹。

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

3 个答案:

答案 0 :(得分:2)

使用File.pathSeparator获取与系统相关的路径分隔符。

编辑:

如果您只想要一个临时目录,请使用File.createTempFile(..)

示例文件路径:http://www.exampledepot.com/egs/java.io/ConstructFilePath.html

临时文件示例:http://www.exampledepot.com/egs/java.io/CreateTempFile.html

<强>编辑:

在Servlet环境中保存文件:here

答案 1 :(得分:2)

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

因此,您需要系统提供的系统临时目录。您可以通过其路径或实际文件获取此信息。 (IOUtils提供了两种方法)。在这里;是IOUtil文档: getTempDirectory

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提供了更好的支持。

答案 2 :(得分:2)

用于保存临时文件的特定于平台的目录的位置由属性java.io.tmpdir定义。

因此,在您的代码中,您可以使用:

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