2012-07-18 156 views
0

我想通过java的mkdir方法创建一个目录。Java的mkdir失败

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

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

+0

注意,'的mkdir()'返回'FALSE'如果该目录已经存在。所有子文件夹是否存在?如果没有,使用'mkdirs()'。 – hmjd 2012-07-18 13:09:22

+0

你能发布确切的错误信息吗? – 2012-07-18 13:09:55

+0

是抛出SecurityException吗? – 2012-07-18 13:10:47

回答

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"); 
     } 
    } 
} 
+1

如果一个文件以“folder2”名称存在,此代码仍可能失败。你不应该只用'exists',而应该调用'isDirectory'。 – 2012-07-18 19:40:21

1

你应该先检查一下目录是否存在。如果该目录已经存在,则mkdir返回false。 因此,伪代码是:

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

此外,还要确保你在目录w(写)权限,你用你的基地目录。