【问题标题】:Java's mkdir failureJava 的 mkdir 失败
【发布时间】:2023-03-04 07:53:07
【问题描述】:

我正在尝试通过 java 的 mkdir 方法创建一个目录。

它失败的问题,我认为是因为访问限制。 Tomcat 在 tomcat7 用户下运行,文件夹的所有者也是 tomcat7 用户。每个子文件夹都有相同的所有者。但是这种方法仍然失败(路径有效)。

有人熟悉这样的问题吗? 谢谢

【问题讨论】:

  • 请注意,如果目录已经存在,mkdir() 将返回 false。所有子文件夹都存在吗?如果没有,请使用mkdirs()
  • 你能发布确切的错误信息吗?
  • 是否抛出了SecurityException?
  • 没有异常,因为 mkdir 没有抛出任何异常...
  • 奇怪,我添加了 dir.canWrite 检查,每次都返回 false,但实际上我可以写入该目录

标签: java tomcat mkdir


【解决方案1】:
public class TestClass6 {
        public static void main(String[] args)
    {
        String path = "c:/folder1/folder2";    // path of the folder you want to create
        File folder=new File(path);
        boolean exist=folder.exists();
        if(!exist){
            folder.mkdirs();
        }else{
            System.out.println("folder already exist");
        }
    }
}

【讨论】:

  • 如果存在名称为 folder2 的文件,此代码仍然会失败。除了exists,您还应该致电isDirectory
【解决方案2】:

您应该事先检查目录是否存在。如果目录已经存在,mkdir 返回 false。 所以,一个伪代码是:

if exists(dir):
   move on and do other things
else:
   File f = new File(dir);
   f.mkdir();

另外,请确保您在用作基本目录的目录中拥有w(写入)权限。

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 1970-01-01
    • 2016-05-23
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多