Hoe maak je een directory in Java aan?

Hoe maak ik een map/map aan?

Zodra ik System.getProperty("user.home");

heb getest

Ik moet een map maken (mapnaam “nieuwe map”) als en alleen als er geen nieuwe map bestaat.


Antwoord 1, autoriteit 100%

Na ongeveer 7 jaar zal ik het updaten voor een betere aanpak die wordt voorgesteld door Bozho.

File theDir = new File("/path/directory");
if (!theDir.exists()){
    theDir.mkdirs();
}

Antwoord 2, autoriteit 90%

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

Hier is “directory” de naam van de directory die u wilt maken/bestaan.


Antwoord 3, autoriteit 32%

Met Java 7 kunt u Files.createDirectories().

Bijvoorbeeld:

Files.createDirectories(Paths.get("/path/to/directory"));

Antwoord 4, autoriteit 7%

Je kunt FileUtils#forceMkdir

FileUtils.forceMkdir("/path/directory");

Deze bibliotheekheeft veel handige functies.


Antwoord 5, autoriteit 6%

mkdir versus mkdirs


Als u een enkele map wilt maken Gebruik mkdir

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

Als u een hiërarchie van mapstructuur wilt maken, gebruikt u mkdirs

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

6, Autoriteit 4%

  1. Maak een enkele map.

    new File("C:\\Directory1").mkdir();
    
  2. Maak een map met de naam “Directory2 en alle sub-directories” Sub2 “en” Sub-sub2 “samen.

    new File("C:\\Directory2\\Sub2\\Sub-Sub2").mkdirs()
    

Bron: deze perfecte tutorial , jij vind ook een voorbeeld van gebruik.


7, Autoriteit 3%

voor Java 7 en hoger:

Path path = Paths.get("/your/path/string");
Files.createDirectories(path);

Het lijkt niet nodig om te controleren op het bestaan ​​van het dir of het bestand voordat u maakt, van aangedreven sorysies Javadocs :

Creëert een map door eerst alle niet-bestaande oudermappen te maken. In tegenstelling tot de Acardirectory-methode wordt een uitzondering niet gegooid als de map niet kon worden gemaakt omdat het al bestaat.
De attrs-parameter is optioneel bestandsattributen om atomair in te stellen bij het maken van de niet-bestaande mappen. Elk bestandskenmerk wordt geïdentificeerd door zijn naam. Als er meer dan één attribuut met dezelfde naam in de array is opgenomen, wordt alles behalve het laatste exemplaar genegeerd.

Als deze methode faalt, kan dit gebeuren na het maken van enkele, maar niet alle, bovenliggende mappen.


Antwoord 8, autoriteit 2%

De volgende methode zou moeten doen wat je wilt, zorg er gewoon voor dat je de retourwaarde van 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();
    }
}

Antwoord 9

Netjes en schoon:

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

10

Goed om directory / map in Java te maken, hebben we twee methoden

Hier Makedirectory-methode maakt een enkele map als deze niet bestaat.

File dir = new File("path name");
boolean isCreated = dir.mkdir();

en

File dir = new File("path name");
boolean isCreated = dir.mkdirs();

Hier Makedirectories Methode maakt alle mappen die ontbreken in het pad dat het bestandsobject vertegenwoordigt.

Verwijst bijvoorbeeld link hieronder (zeer goed uitgelegd). Hoop dat het helpt!!
https://www.flowerbrackets.com/how-to-create-directory -Java /


Antwoord 11

Ik wilde iedereen erop wijzen dat File.mkdir()of File.mkdirs()wordt gebruikt om op te letten dat het object Fileeen directory en niet een bestand. Als u bijvoorbeeld mkdirs()aanroept voor het pad /dir1/dir2/file.txt, wordt er een mapgemaakt met de naam file.txtwat waarschijnlijk niet is wat je wilde. Als u een nieuw bestand aanmaakt en ook automatisch bovenliggende mappen wilt maken, kunt u zoiets als dit doen:

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

Antwoord 12

Dit is voor mij de manier om één enkele map of meer of meer te doen:
moet java.io.File importeren;
/*voer de onderstaande code in om een diectory dir1 toe te voegen of controleer of dir1 bestaat, zo niet, dus maak het en hetzelfde met dir2 en 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");  }

Antwoord 13

als je er zeker van wilt zijn dat het gemaakt is, dan dit:

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();
}

omdat mkDir()een boolean retourneert, en findbugs zullen erom huilen als je de variabele niet gebruikt. Het is ook niet leuk…

mkDir()retourneert alleen waar als mkDir()het maakt.
Als de map bestaat, retourneert deze false, dus om de map die u hebt gemaakt te verifiëren, roept u alleen exists()aan als mkDir()false retourneert.

assertThat()controleert het resultaat en faalt als exists()false retourneert. ofc kun je andere dingen gebruiken om de niet-aangemaakte map te behandelen.


Antwoord 14

Met deze functie kunt u een directory maken in de homedirectory van de gebruiker.

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

Antwoord 15

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();
       }
    }
}

Other episodes