Comment créer un répertoire en Java?
Comment créer un répertoire / dossier?
Une Fois que j'ai testé System.getProperty("user.home");
Je dois créer un répertoire (Nom du répertoire "Nouveau dossier" ) si et seulement si le nouveau dossier n'existe pas.
18 réponses
Après ~7 année, je vais le mettre à jour pour une meilleure approche qui est suggérée par Bozho.
new File("/path/directory").mkdirs();
Obsolète:
File theDir = new File("new folder");
// if the directory does not exist, create it
if (!theDir.exists()) {
System.out.println("creating directory: " + theDir.getName());
boolean result = false;
try{
theDir.mkdir();
result = true;
}
catch(SecurityException se){
//handle it
}
if(result) {
System.out.println("DIR created");
}
}
new File("/path/directory").mkdirs();
Ici "directory" est le nom du répertoire que vous voulez créer / exister.
Avec Java 7, vous pouvez utiliser Files.createDirectories()
.
Par exemple:
Files.createDirectories(Paths.get("/path/to/directory"));
Vous pouvez essayer FileUtils#forceMkdir
FileUtils.forceMkdir("/path/directory");
Ce bibliothèque ont beaucoup de fonctions utiles.
Mkdir vs mkdirs
Si vous voulez créer un seul répertoire, Utilisez mkdir
new File("/path/directory").mkdir();
Si vous souhaitez créer une hiérarchie de structure de dossier utiliser mkdirs
new File("/path/directory").mkdirs();
-
Créez un seul répertoire.
new File("C:\\Directory1").mkdir();
-
Créez un répertoire nommé "Directory2 et tous ses sous-répertoires "Sub2" et "Sub-Sub2" ensemble.
new File("C:\\Directory2\\Sub2\\Sub-Sub2").mkdirs()
Source: ce parfait tutoriel , vous trouverez également un exemple d'utilisation.
La méthode suivante devrait faire ce que vous voulez, assurez-vous de vérifier la valeur de retour de mkdir() / mkdirs()
private void createUserDir(final String dirName) throws IOException {
final File homeDir = new File(System.getProperty("user.home"));
final File dir = new File(homeDir, dirName);
if (!dir.exists() && !dir.mkdirs()) {
throw new IOException("Unable to create " + dir.getAbsolutePath();
}
}
Pour java 7 et plus:
Path path = Paths.get("/your/path/string");
if(!Files.exists(path)) {
try {
Files.createDirectories(path);
} catch (IOException e) {
e.printStackTrace();
}
}
Bien que cette question ait été répondue. Je voudrais mettre quelque chose en plus, c'est à dire s'il existe un fichier avec le nom de répertoire que vous essayez de créer, il devrait provoquer une erreur. Pour les futurs visiteurs.
public static void makeDir()
{
File directory = new File(" dirname ");
if (directory.exists() && directory.isFile())
{
System.out.println("The dir with name could not be" +
" created as it is a normal file");
}
else
{
try
{
if (!directory.exists())
{
directory.mkdir();
}
String username = System.getProperty("user.name");
String filename = " path/" + username + ".txt"; //extension if you need one
}
catch (IOException e)
{
System.out.println("prompt for error");
}
}
}
Je voulais juste signaler à tout le monde appelant File.mkdir()
ou File.mkdirs()
pour faire attention à l'objet File
est un répertoire et non un fichier. Par exemple, si vous appelez mkdirs()
pour le chemin /dir1/dir2/file.txt
, il va créer un dossier avec le nom file.txt
, qui n'est probablement pas ce que tu voulais. Si vous créez un nouveau fichier et également créer automatiquement des dossiers parent que vous pouvez faire quelque chose comme ceci:
File file = new File(filePath);
if (file.getParentFile() != null) {
file.getParentFile().mkdirs();
}
Propre et propre:
import java.io.File;
public class RevCreateDirectory {
public void revCreateDirectory() {
//To create single directory/folder
File file = new File("D:\\Directory1");
if (!file.exists()) {
if (file.mkdir()) {
System.out.println("Directory is created!");
} else {
System.out.println("Failed to create directory!");
}
}
//To create multiple directories/folders
File files = new File("D:\\Directory2\\Sub2\\Sub-Sub2");
if (!files.exists()) {
if (files.mkdirs()) {
System.out.println("Multiple directories are created!");
} else {
System.out.println("Failed to create multiple directories!");
}
}
}
}
Eh bien pour créer un répertoire / dossier en java, nous avons deux méthodes
Ici, la méthode makedirectory crée un seul répertoire s'il n'existe pas.
File dir = new File("path name");
boolean isCreated = dir.mkdir();
Et
File dir = new File("path name");
boolean isCreated = dir.mkdirs();
Ici, la méthode makedirectories créera tous les répertoires manquants dans le chemin que représente l'objet file.
Par exemple, reportez-vous au lien ci-dessous (très bien expliqué). Espérons que cela aide!! http://www.flowerbrackets.com/create-directory-java-program/
Cette façon de travailler pour moi faire un seul répertoire ou plus ou eux:
besoin d'importer java.io.Fichier;
/ * entrez le code ci-dessous pour ajouter une diectory dir1 ou vérifiez s'il existe dir1, si ce n'est pas le cas, alors créez-le et même avec dir2 et dir3 * /
File filed = new File("C:\\dir1");
if(!filed.exists()){ if(filed.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
File filel = new File("C:\\dir1\\dir2");
if(!filel.exists()){ if(filel.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
File filet = new File("C:\\dir1\\dir2\\dir3");
if(!filet.exists()){ if(filet.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
Cette fonction vous permet de créer un répertoire sur le répertoire principal de l'utilisateur.
private static void createDirectory(final String directoryName) {
final File homeDirectory = new File(System.getProperty("user.home"));
final File newDirectory = new File(homeDirectory, directoryName);
if(!newDirectory.exists()) {
boolean result = newDirectory.mkdir();
if(result) {
System.out.println("The directory is created !");
}
} else {
System.out.println("The directory already exist");
}
}
Si vous voulez être sûr qu'il est créé alors ceci:
final String path = "target/logs/";
final File logsDir = new File(path);
final boolean logsDirCreated = logsDir.mkdir();
if (!logsDirCreated) {
final boolean logsDirExists = logsDir.exists();
assertThat(logsDirExists).isTrue();
}
Beacuse mkDir()
renvoie un booléen, et findbugs pleurera si vous n'utilisez pas la variable. Aussi, sa ne fait pas beau...
mkDir()
renvoie uniquement true si mkDir()
Le crée.
Si le répertoire existe, il renvoie false, donc pour vérifier le répertoire que vous avez créé, appelez seulement exists()
Si mkDir()
retourne false.
assertThat()
vérifie le résultat et échoue si exists()
renvoie false. ofc vous pouvez utiliser d'autres choses pour gérer le répertoire Non créé.
public class Test1 {
public static void main(String[] args)
{
String path = System.getProperty("user.home");
File dir=new File(path+"/new folder");
if(dir.exists()){
System.out.println("A folder with name 'new folder' is already exist in the path "+path);
}else{
dir.mkdir();
}
}
}