我提到了这个example并创建了一个servlet应用程序。
TMP_DIR& amp;代码中提到的DEST_DIR路径(我在C盘中创建了一个名为tmp
的文件夹,并且我在应用程序文件夹中创建了一个名为files
的文件夹。
现在我正在将代码转移到linux机器上,因为没有名为C的驱动器,所以这不起作用。我尝试将代码的c:\\tmp
替换为/tmp
(并在我的应用程序文件夹中创建了一个文件夹tmp)。但它不起作用。如何使此代码通用?请指教。
答案 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")