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 de répertoire “nouveau dossier”) si et seulement si un nouveau dossier n’existe pas.

Après environ 7 ans, je le mettrai à jour pour une meilleure approche suggérée par Bozho.

 new File("/path/directory").mkdirs(); 

Déconseillé:

 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, “répertoire” est le nom du répertoire que vous souhaitez 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"); 

Cette bibliothèque a beaucoup de fonctions utiles.

mkdir vs mkdirs


Si vous voulez créer un répertoire unique, utilisez mkdir

 new File("/path/directory").mkdir(); 

Si vous voulez créer une hiérarchie de la structure des dossiers, utilisez mkdirs

  new File("/path/directory").mkdirs(); 
  1. Créez un répertoire unique.

     new File("C:\\Directory1").mkdir(); 
  2. 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 tutoriel parfait, vous trouverez également un exemple d’utilisation.

La méthode suivante devrait faire ce que vous voulez, assurez-vous simplement que vous vérifiez la valeur de retour de mkdir () / mkdirs ()

 private void createUserDir(final Ssortingng 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/ssortingng"); if(!Files.exists(path)) { try { Files.createDirectories(path); } catch (IOException e) { e.printStackTrace(); } } 

Bien que cette question ait été répondue. Je voudrais append quelque chose, c’est-à-dire que s’il existe un fichier avec le nom de répertoire que vous essayez de créer, cela 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(); } Ssortingng username = System.getProperty("user.name"); Ssortingng filename = " path/" + username + ".txt"; //extension if you need one } catch (IOException e) { System.out.println("prompt for error"); } } } 

Je voulais juste signaler à tous ceux qui appelaient File.mkdir() ou File.mkdirs() de faire attention à l’object File est un répertoire et non un fichier. Par exemple, si vous appelez mkdirs() pour le chemin /dir1/dir2/file.txt , cela créera un dossier nommé file.txt qui n’est probablement pas ce que vous vouliez. Si vous créez un nouveau fichier et souhaitez également créer automatiquement des dossiers parents, vous pouvez faire quelque chose comme ceci:

  File file = new File(filePath); if (file.getParentFile() != null) { file.getParentFile().mkdirs(); } 

Propre et net:

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

essayez avec ceci.

 import java.io.File; public class MakingDirectory { public static void main(Ssortingng[] args) { Ssortingng s="d:\\msreddy\\sample1"; File file=new File(s); file.mkdirs(); } } 

pour plus d’informations voir ceci.

Eh bien pour créer un répertoire / dossier en Java, nous avons deux méthodes

Ici, la méthode makedirectory crée un répertoire unique 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’object fichier.

Par exemple, voir le lien ci-dessous (très bien expliqué). J’espère que cela aide!! http://www.flowerbrackets.com/create-directory-java-program/

Cela fonctionne comme moi pour faire un seul répertoire ou plus ou eux: besoin d’importer java.io.File;
/ * entrez le code ci-dessous pour append un répertoire diectory ou vérifiez si exist

  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 personnel de l’utilisateur.

 private static void createDirectory(final Ssortingng 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 que c’est créé alors ceci:

 final Ssortingng 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() retourne un booléen et findbugs va pleurer si vous n’utilisez pas la variable. Aussi c’est pas sympa …

mkDir() ne renvoie que true si mkDir() crée. Si le répertoire existe, il retourne false, donc pour vérifier le répertoire que vous avez créé, seul l’appel exists() si mkDir() renvoie 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(Ssortingng[] args) { Ssortingng 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(); } } } 

Vous pouvez également faire référence à la fonction makdir () pour créer un nouveau répertoire dans un dossier où vous voulez.