2

我有这样的代码:

return (new File(pathA + File.separator + pathB + File.separator)).mkdir();

我相信它曾经有效,但现在无效。该应用程序仅在 Linux 上运行,我们已经使用 Mint 9、Ubuntu 10.04、Kubuntu 12.04 等对其进行了测试。它不会创建预期的目录。

该路径位于具有 777 权限的目录中。

堆栈跟踪不是很有帮助。因为跟踪显示了对 java.security 方法的几个调用,所以我认为这是一个权限问题。但是实际的错误信息根本没有帮助(可能是因为代码中的异常处理需要改进)。

在 Linux 上用 Java 创建目录的最佳方法是什么?

4

2 回答 2

3
  • 提取path + File.separator到变量。
  • 将其打印到控制台
  • 在终端中启动 shell 并使用与应用程序运行相同的用户帐户运行此命令 mkdir <INSERT THE PATH TO THE DIR THAT YOUR APP IS TRYING TO CREATE HERE>

这应该给你你的问题的根本原因。

如果这不能使答案显而易见,请在问题中添加所有其他证据

于 2012-05-18T21:19:50.313 回答
2

问题是我在路径中创建了不止一级的目录。解决方案是:

return (new File(pathA + File.separator + pathB + File.separator)).mkdirs();

注意 mkdirs() 上的“s”。

于 2012-05-18T21:44:32.363 回答