Ordner in neuen erstellten Ordner erstellen

User12345564

Mitglied
Hallo zusammen,

ich bin noch neu in der Java Welt und habe jetzt den Versuch gestartet, ein kleines Programm zu entwerfen.

Ich möchte einen Ordner auf dem Desktop erstellen, den ich selbst benenne und anschließend sollen in diesen, 3 vorbenannte Ordner erstellt werden.

Meine Frage:
Wie setze ich den Pfad in den neu erstellten Ordner, damit die anderen in diesem erstellt werden können?

Hier der Code:
Java:
import java.io.File;
import java.util.Scanner;


public class OrdnerErsteller {

    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      // Wo soll der Ordner erstellt werden?
      String path1 = "C:\\Users\\Hier ist der Name\\Desktop\\";
      String path;
      // Abfrage des Ordnernamens vom User
      System.out.println("Gib den Namen für den Ordner ein: ");
      path = path1 +sc.next();
      // Initialisierung der File Klasse
      File f0 = new File(path);
      // Ordner erstellen
      boolean bool0 = f0.mkdir();
   
      // Bis hier hin funktioniert der Code
 
      path = path + "PNGs";
      File f1 = new File(path);
      boolean bool1 = f1.mkdir();
     
   
      path = path + "JPEGs";
      File f2 = new File(path);
      boolean bool2 = f2.mkdir();
   
   
      path = path + "RAWs";
      File f3 = new File(path);
      boolean bool3 = f3.mkdir();
   
   
      // Überprüfung, ob alles funktioniert hat
      if(bool0){
         System.out.println("Folder is created successfully");
      }else{
         System.out.println("Error Found!");
      }
   
      if(bool1){
         System.out.println("Folder is created successfully");
      }else{
         System.out.println("Error Found!");
      }
   
      if(bool2){
         System.out.println("Folder is created successfully");
      }else{
         System.out.println("Error Found!");
      }
   
      if(bool3){
         System.out.println("Folder is created successfully");
      }else{
         System.out.println("Error Found!");
      }
   
   }
}

Vielen Dank schon einmal im Voraus!
 

kneitzel

Top Contributor
Du kannst Pfade zusammenfügen z.B. mit Paths.get: https://docs.oracle.com/javase/8/do...tml#get-java.lang.String-java.lang.String...-

Noch ein paar weitere Ratschläge:
a) Nutze als Pfadtrenner auch unter Windows den /. Java unterstützt das auch. Also kein Backslash!
b) Den Ordner des Users kannst Du über die System Property user.home bekommen (System.getProperty("user.home")). Aber Achtung: Prüfe, ob es den Desktop als Verzeichnis wirklich gibt. Das kann der Fall sein, aber es muss nicht!
c) Strukturiere den Code etwas um: statt erst etwas zu machen um dann später eine Variable zu prüfen, die die Rückgabe enthält: Prüfe die Rückgabe sofort. Und wenn Du mehrmals das Gleiche machst: Lagere es aus in eine Methode. Das wäre dann sowas in der Art:
Java:
private void makeDirectory(String path) {}
    File file = new File(path);
    if(file.mkdir()){
        System.out.println("Folder is created successfully");
    }else{
        System.out.println("Error Found!");
    }
}
Das nur um ein kleines Beispiel zu geben. Das ist also alles andere als ein umfängliches Refactoring.
 

User12345564

Mitglied
Puuh:rolleyes:!
Erstmal, vielen Dank!
Ich tu mir gerade schwer, wie ich das am besten umsetzen kann.
Könntest du mir hierfür vielleicht noch eine Hilfestellung geben?
VG
 

kneitzel

Top Contributor
Mal einfach so ein kleines Codebeispiel, das Verzeichnisse erzeugt.

Aber noch einmal: Das Verzeichnis Desktop muss es nicht geben! Ich habe kein solches Verzeichnis auf meinem Windows 10 System (Da wurde das Verzeichnis umgezogen - weil es mit Synchronisiert wird und so.)

Java:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class CreateFoldersExample {

    public static void main(String[] args) {
        createFolderOnDesktop("a", "b");
    }

    public static void createFolderOnDesktop(final String... folderNames) {
        String userHome = System.getProperty("user.home");
        Path desktopPath = Paths.get(userHome, "Desktop");
        if (Files.isDirectory(desktopPath)) {
            for (String folderName : folderNames) {
                createDirectory(desktopPath, folderName);
            }
        } else {
            System.out.println("Folder " + desktopPath + " does not exist!");
        }
    }

    public static void createDirectory(final Path parent, final String folderName) {
        try {
            System.out.println("creating folder " + folderName + " in " + parent);
            Files.createDirectory(Paths.get(parent.toString(), folderName));
        } catch (IOException ex) {
            System.err.println("Unable to create folder " + folderName + " in " + parent + ": " + ex.getMessage());
            ex.printStackTrace();
        }
    }

}
 

User12345564

Mitglied
Ok ich habe es jetzt soweit umgeändert und einen Teil von dir eingebaut. Die Vereinfachung des Codes, versuche ich bei einem besseren Wissensstand.
Jetzt habe ich nur noch ein Problem: Wenn ich bei der Abfrage nach dem Ordnernamen, z.B. Österreich - 31.03.21 eingebe, wird der Ordner nur als Österreich erstellt. Bei einem String müsste doch jedes Zeichen mitgenommen werden?

Java:
import java.io.File;
import java.util.Scanner;


public class OrdnerErsteller {

    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      // Wo soll der Ordner erstellt werden?   
      String path1 = System.getProperty("user.home") + "/Desktop/";
      // Abfrage des Ordnernamens vom User
      System.out.println("Gib den Namen für den Ordner ein: "); 
      path1 = path1 + sc.next();
      // Initialisierung der File Klasse   
      File f0 = new File(path1); 
      // Ordner erstellen
      boolean bool0 = f0.mkdir();
      
    
      String path2;
      path2 = path1 + "/PNGs";
      File f1 = new File(path2);
      boolean bool1 = f1.mkdir();
      
      String path3;
      path3 = path1 + "/JPEGs";
      File f2 = new File(path3);
      boolean bool2 = f2.mkdir();
      
      String path4;
      path4 = path1 + "/RAWs";
      File f3 = new File(path4);
      boolean bool3 = f3.mkdir();
      
      
      // Überprüfung, ob alles funktioniert hat
      if(bool0){ 
         System.out.println("Folder is created successfully"); 
      }else{ 
         System.out.println("Error Found!"); 
      }
      
      if(bool1){ 
         System.out.println("Folder is created successfully"); 
      }else{ 
         System.out.println("Error Found!"); 
      }
      
      if(bool2){ 
         System.out.println("Folder is created successfully"); 
      }else{ 
         System.out.println("Error Found!"); 
      }
      
      if(bool3){ 
         System.out.println("Folder is created successfully"); 
      }else{ 
         System.out.println("Error Found!"); 
      }
      
   } 
}
 

kneitzel

Top Contributor
Du nutzt sc.next() um den Dateinamen einzulesen. next() liefert aber nur das nächste Token.
Wenn Du die ganze Eingabe (die ganze Zeile) haben willst, dann musst du nextLine() statt next() nehmen.

Und immer aufpassen: Wenn Du auch token basiert mit dem Scanner arbeitest (also dies "mischst"), dann kann das nextLine() den optionalen Rest + Zeilenumbruch vom letzten next, nextInt, ... bekommen!

Und eine Frage hätte ich hierzu: Funktioniert das dann auch 1:1 auf einem Mac, also ohne das ich den Code verändern muss?
Ja, das sollte auch auf einem Mac laufen. Aber Apple sichert alles relativ gut ab. Damit eine Applikation auf User-Dateien zugreifen kann braucht die App ggf. erst eine Berechtigung. Ich habe keinen Mac mehr im Einsatz (ok, falsch, ich habe noch Macs im Einsatz aber die laufen mit Linux :) ), daher kann ich da aktuell auch nichts mehr austesten. Aber ich erinnere mich noch, dass da etwas war.
 

User12345564

Mitglied
Vielen Dank für die schnelle Rückmeldung:D!
Jetzt muss ich nur noch eine ganz einfache GUI entwickeln, damit ich das Programm auch ohne IDE ausführen kann. Hast du da vielleicht noch einen Tipp wie man das schnell und einfach für meinen Fall machen kann:)?
 

kneitzel

Top Contributor
Also man braucht nicht zwingend eine GUI damit man etwas ohne IDE ausführen kann.

Das geht aber ggf. jetzt recht weit, wenn man das alles ausführen wollte.

Wenn ein entsprechendes Java installiert ist, reicht es aber schon, die übersetzten class Dateien weiter zu geben. Ggf. noch ein script, dass dann den java Befehl ausführt.

Wenn Du da möglichst wenig Abhängigkeiten haben willst, dann würde es meiner Meinung nach Richtung JLink und JPackage gehen.
 

Barista

Top Contributor
Mit File#mkdirs() kannst Du alle Verzeichnisse auf dem angegeben Pfad (Klasse File) erzeugen.

Mehrfach-Aufruf ist kein Problem, wenn die Verzeichnisse vorhanden sind, wird einfach nichts gemacht.
 

kneitzel

Top Contributor
So schön es ist, ganze Strukturen anlegen zu können sollte man dennoch die Voraussetzungen prüfen. Sprich: auf dem Desktop soll hier etwas angelegt werden: der Desktop Ordner sollte schon da sein und das prüft man bitte vorher.

Dieser Check sollte auf keinem Fall entfallen! (Klar, das hat niemand gefordert. Ich betone es nur, weil ich da leider schon zu viel erlebt habe.)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Neuen Ordner im Überverzeichnis erstellen, und dadrin arbeiten Java Basics - Anfänger-Themen 4
T src Ordner ausführen Java Basics - Anfänger-Themen 9
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
L Files verschieben in einen Ordner Java Basics - Anfänger-Themen 87
Henri Mehrere Ordner umbenennen Java Basics - Anfänger-Themen 11
J Eclipse Einrichten : Umzug in anderen Ordner Java Basics - Anfänger-Themen 2
N Project layout eclipse ( seperate ordner für klassen ? ) Java Basics - Anfänger-Themen 1
F Ordner auf alle Unterdatein abfragen Java Basics - Anfänger-Themen 3
F Zeile in Ordner Java Basics - Anfänger-Themen 4
J variablePathPart ändern nach dem Ordner abgearbeitet worden ist Java Basics - Anfänger-Themen 1
das_leon Auf Ordner zugreifen (Vollzugriff) Java Basics - Anfänger-Themen 2
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
C Methoden Dateien im Ordner anzeigen Java Basics - Anfänger-Themen 12
L Ordner Zippen Java Basics - Anfänger-Themen 2
L Ordner zusammenlegen Java Basics - Anfänger-Themen 3
J Java Ordner Erstellung nicht möglich. Java Basics - Anfänger-Themen 3
G Input/Output Aus txt-Datei lesen, aus Ordner Java Basics - Anfänger-Themen 1
M Ordner mit Inhalt löschen Java Basics - Anfänger-Themen 7
M Erste Schritte Ordner im selber Verzeichnis wählen Java Basics - Anfänger-Themen 1
D Input/Output Ordner aus .Jar in das Verzeichnis der .Jar kopieren Java Basics - Anfänger-Themen 1
P Einen Ordner mit Dateien hochladen [FTP] Java Basics - Anfänger-Themen 2
agent47 Input/Output Ordner/Datei Rekutrsiv erstellen und Java Basics - Anfänger-Themen 8
S Prüfen ob bestimmter Ordner geöffnet ist (Windows XP) Java Basics - Anfänger-Themen 5
D Ordner der Ausgeführten Datei erhalten Java Basics - Anfänger-Themen 4
P newbie- Frage zu Ordner-Projektstruktur Java Basics - Anfänger-Themen 3
L Herunterladbares Java Programm in bestimmten Ordner speicher Java Basics - Anfänger-Themen 3
M Input/Output Ordner erstelen? Java Basics - Anfänger-Themen 12
A Ordner zippen Java Basics - Anfänger-Themen 10
T .jar Datei als Ordner benutzen/ Dateien aus .jar Datei auslesen Java Basics - Anfänger-Themen 3
J Ordner unter Windows Verstecken Java Basics - Anfänger-Themen 2
D Ordner auf Desktop erstellen(Pc unabhängig) Java Basics - Anfänger-Themen 3
I Ordner schnell durchlesen Java Basics - Anfänger-Themen 11
I ZIP Archive erstellen - ich möchte aber nur den jeweiligen Ordner zippen, bekomme ganzen Pfad Java Basics - Anfänger-Themen 1
I Datei schreiben, im Klassen-Ordner Java Basics - Anfänger-Themen 15
P Dateien im Ordner auflisten. Java Basics - Anfänger-Themen 3
V bin und src Ordner Java Basics - Anfänger-Themen 3
M JFS- Ordner von faces-config.xml Java Basics - Anfänger-Themen 2
M JFileChooser Ordner auswählen Java Basics - Anfänger-Themen 5
C src-Ordner in jar-Datei (Eclipse) Java Basics - Anfänger-Themen 4
S Datei ausführen, verschiedene Ordner Java Basics - Anfänger-Themen 2
B Ordner leeren/löschen Java Basics - Anfänger-Themen 5
M Java-Datei in Ordner Kopieren Java Basics - Anfänger-Themen 12
X Wieso mehrere JRE ordner? Java Basics - Anfänger-Themen 8
N Kein Zugriff auf Ordner -> NullPointerException Java Basics - Anfänger-Themen 2
I Dateien in Ordner und Unterordner durchsuchen Java Basics - Anfänger-Themen 18
J Markierte Einträge (Dateien) in JList sollen in einen anderen Ordner verschoben werden. Java Basics - Anfänger-Themen 12
D Compiler-Fehler Klasse wird im selben Ordner nicht gefunden Java Basics - Anfänger-Themen 5
J Markierte Items in einer JLIST in einen Ordner verschieben Java Basics - Anfänger-Themen 2
S Bearbeiting von xml-Datei in src-Ordner möglich?i Java Basics - Anfänger-Themen 5
B res-Ordner für Text- und Bilddateien Java Basics - Anfänger-Themen 23
B Ordner in jar dateien einfügen Java Basics - Anfänger-Themen 4
M Java Eclipse IDE erstellt keinen Bin Ordner. Java Basics - Anfänger-Themen 10
F Kopieren von Ordner sammt inhalt Java Basics - Anfänger-Themen 5
V Ressourcen aus Ordner nutzen Java Basics - Anfänger-Themen 5
W Ordner "auslesen" Java Basics - Anfänger-Themen 18
R Aus jar Ordner lesen Java Basics - Anfänger-Themen 27
F Auf Ordner im selben Verzeichniss zugreifen Java Basics - Anfänger-Themen 3
K Input/Output Verschiedene Ordner für Java u.v.m. Projekte Java Basics - Anfänger-Themen 3
P Problem :Java-Dateien in einem Ordner ablegen Java Basics - Anfänger-Themen 10
S Ordner / Package Struktur bei größerem Projekt? Java Basics - Anfänger-Themen 8
O Erste Schritte Runnable Jar <- Ordner Fehlen Java Basics - Anfänger-Themen 6
D höchster ordner in zip datei Java Basics - Anfänger-Themen 14
J Ordner und Unterordner nach Dateien durchsuchen Java Basics - Anfänger-Themen 7
M Dateipfad: einen Ordner "hoch" Java Basics - Anfänger-Themen 11
M Input/Output Namen der Files aus einem Ordner MIT bestimmten Encoding auslesen? Java Basics - Anfänger-Themen 3
L Größe von Ordner wiedergeben Java Basics - Anfänger-Themen 4
M Applet soll Bilder aus Ordner lesen Java Basics - Anfänger-Themen 9
V .cab Dateien im Win Profil Ordner? Java Basics - Anfänger-Themen 5
eLogic Ordner kopieren/schreiben Java Basics - Anfänger-Themen 2
D Ordner in Eclipse Importieren Java Basics - Anfänger-Themen 6
F Ordner in JAR scannen Java Basics - Anfänger-Themen 3
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
P Kompelieren von 2 Java Dateien im selben Ordner Java Basics - Anfänger-Themen 13
V Datei in Ordner auslesen -> neuer Ordnername Java Basics - Anfänger-Themen 7
J Dateien aus Ordner auslesen bzw. einlesen Java Basics - Anfänger-Themen 4
G jar datei funktioniert nicht ohne jdom.jar im Ordner Java Basics - Anfänger-Themen 7
H Textdateien in Ordner einlesen - unendlich ? Java Basics - Anfänger-Themen 8
B Datei in mehrere Ordner splitten und wieder zusammenfuegen... Java Basics - Anfänger-Themen 3
B Ordner öffnen (eigener Dateibrowser) Java Basics - Anfänger-Themen 8
F Liste aller Ordner auf einem Laufwerk erstellen? Java Basics - Anfänger-Themen 3
StrikeTom Wie ermittel ich alle dateinamen in einem Ordner Java Basics - Anfänger-Themen 2
H Wie Projekt-Ordner-Pfad ermitteln? Java Basics - Anfänger-Themen 11
S Betriebssystem - Ordner erstellen auf Windows & Linux Java Basics - Anfänger-Themen 3
BleedingSt4r Ordner + Unterordner "auslesen" ? Java Basics - Anfänger-Themen 32
S Ordner erstellen Problem Java Basics - Anfänger-Themen 4
S Ordner umbenennen mit renameTo - mysteriöses Problem Java Basics - Anfänger-Themen 9
T alle Ordner in einem Ordner in JList anzeigen Java Basics - Anfänger-Themen 3
M Ordner Download Java Basics - Anfänger-Themen 11
Developer_X Zugriff auf PC verweigert bei Ordner erstellung, wie zulassen?! Java Basics - Anfänger-Themen 3
Developer_X Java File listet den Ordner, in dem sich die Datei befindet Java Basics - Anfänger-Themen 7
P FTP Ordner löschen Java Basics - Anfänger-Themen 5
Developer_X Java - per Java einen Ordner löschen Java Basics - Anfänger-Themen 9
S Dateien von einem Ordner in den anderen kopieren Java Basics - Anfänger-Themen 2
M Ordner der jar Datei herausfinden und Partent durchsuchen Java Basics - Anfänger-Themen 4
P [Positiv Erledigt] Ordner mit Bildern auslesen und diese speichern Java Basics - Anfänger-Themen 7
G package im bin ordner Java Basics - Anfänger-Themen 2
S Eclipse .metadata ordner ist sehr gross! Java Basics - Anfänger-Themen 1
A Verzeichnisse nach Datei / Ordner durchsuchen Java Basics - Anfänger-Themen 11
G Alle Ordner durchgehen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben