2014-01-11 60 views
2

你好,我只是想知道如何在当前用户的主目录下创建一个自定义目录。我已经尝试过这一点,它不工作...(下面的代码)如何使用Java在当前用户的主目录中创建文件?

我希望它去这个目录和文档文件夹中创建的文件夹

C:/用户/“用户“/文件/ SimpleHTML/

File SimpleHTML = new File("C:/Users/"user"/Documents"); { 

// if the directory does not exist, create it 
if (!SimpleHTML.exists()) { 
    System.out.println("createing direcotry: " + SimpleHTML); 
    boolean result = SimpleHTML.mkdir(); 

     if(result) { 
      System.out.println("Direcotry created!"); 
     } 
} 

new simplehtmlEditor() { 
    //Calling to Open the Editor 
}; 

} 
+0

的可能重复[?如何在Java中创建一个目录(http://stackoverflow.com/questions/3634853/how-to-create-a-directory-in-java ) –

+0

那是我从那里得到的代码,但它不适合我... – 2602

+2

呦你有语法错误,'File SimpleHTML = new File(“C:/ Users /”+ user +“/ Documents”); {',将这些plus加到concat 2字符串 –

回答

17

首先,使用System.getProperty("user.home")获得 “用户” 目录...

String path = System.getProperty("user.home") + File.separator + "Documents"; 
File customDir = new File(path); 

二,使用File#mkdirs代替File#mkdir确保整个路径被创建,为mkdir假定只有最后一个元素需要创建

现在你可以使用File#exists检查抽象路径存在,如果它不File#mkdirs做出的所有部件路径(忽略那些做的),例如...

if (customDir.exists() || customDir.mkdirs()) { 
    // Path either exists or was created 
} else { 
    // The path could not be created for some reason 
} 

更新

一个简单的突破,可能需要进行各种检查的下降。前面的例子只关心路径是否存在或者是否可以创建。这打破这些检查下来,让你可以看到发生了什么......

String path = System.getProperty("user.home") + File.separator + "Documents"; 
path += File.separator + "Your Custom Folder" 
File customDir = new File(path); 

if (customDir.exists()) { 
    System.out.println(customDir + " already exists"); 
} else if (customDir.mkdirs()) { 
    System.out.println(customDir + " was created"); 
} else { 
    System.out.println(customDir + " was not created"); 
} 

注意,我也添加了Your Custom Folder的路径中的附加文件夹;)

+0

我刚刚测试过,并把一个简单的System.out.println看看会发生什么,并在控制台上它说,它的工作,但我看不到文件夹中的文件夹。 – 2602

+0

你可以查看文件#存在是否返回true,因为我会想象文件已经存在...我会更新这个问题 – MadProgrammer

+0

对不起,我不知道你的意思,我确定你知道我对Java很陌生。 – 2602

1

注意,您可以使用commons-IO对于这一点,太:

File userDirectory = org.apache.commons.io.FileUtils.getUserDirectory(); 
相关问题