2

我正在使用以下代码在 Linux 下的 java 中创建一个目录:

String dir = "~/tempDir/";
if (!IOUtils.createDirectory(dir)) {
    throw new IOException("could no create the local store directory: "
            + dir );
}

LOGGER.info("local store successfully created.");

该应用程序似乎创建了目录,因为我没有收到任何错误并且工作正常。问题是我在磁盘上看不到这个目录;我正在查看我的主目录。需要提一下,这是一个运行在 tomcat 下的 java web 应用程序。

有谁知道为什么我看不到这个目录?

4

2 回答 2

6

这不起作用,因为~由您的外壳bashsh其他任何东西扩展。这不适用于Java。

您已经~在工作目录中创建了一个名为的目录。

您需要从系统属性中获取用户的主目录user.home并从中构建您的路径。

final File dir = new File(System.getProperty("user.home"), "tempDir");
于 2013-06-30T22:38:39.677 回答
0

如果具有指定名称的文件夹不存在,以下将在 Home 下创建一个“新文件夹”

final String homePath = System.getProperty("user.home") + "/";
final String folderName = "New Folder";

File file = new File(homePath + folderName);

if (!file.exists())
    file.mkdir();

您拥有的另一种选择(我应该说更好)是使用 File 的另一个构造函数,该构造函数采用父路径和子路径,如下所示:

final String homePath = System.getProperty("user.home");
final String folderName = "New Folder";

File file = new File(homePath, folderName);

if (!file.exists())
    file.mkdir();
于 2013-06-30T22:46:41.460 回答