1281 Stimmen

Wie erhalte ich das aktuelle Arbeitsverzeichnis in Java?

Ich möchte mein aktuelles Arbeitsverzeichnis mit Java zugreifen.

Mein Code:

 String currentPath = new java.io.File(".").getCanonicalPath();
 System.out.println("Aktuelles Verzeichnis:" + currentPath);

 String currentDir = System.getProperty("user.dir");
 System.out.println("Aktuelles Verzeichnis mit System:" + currentDir);

Ausgabe:

Aktuelles Verzeichnis: C:\WINDOWS\system32
Aktuelles Verzeichnis mit System: C:\WINDOWS\system32

Meine Ausgabe ist nicht korrekt, da das Laufwerk C nicht mein aktuelles Verzeichnis ist.

Wie kann man das aktuelle Verzeichnis bekommen?

1396voto

Anuj Patel Punkte 16347

Code :

public class JavaApplication {
  public static void main(String[] args) {
    System.out.println("Working Directory = " + System.getProperty("user.dir"));
  }
}

Dies druckt den absoluten Pfad des aktuellen Verzeichnisses aus, von dem aus Ihre Anwendung initialisiert wurde.


Erklärung:

Laut der Dokumentation:

java.io Paket löst relative Pfadangaben unter Verwendung des aktuellen Benutzerverzeichnisses auf. Das aktuelle Verzeichnis wird als Systemeigenschaft dargestellt, nämlich user.dir, und ist das Verzeichnis, von dem aus der JVM aufgerufen wurde.

494voto

geoO Punkte 5102

Siehe: Pfadoperationen (Die Java™-Tutorials > Grundlegende Klassen > Grundlegende E/A).

Mit java.nio.file.Path und java.nio.file.Paths können Sie Folgendes tun, um anzuzeigen, was Java für Ihren aktuellen Pfad hält. Dies gilt für Version 7 und höher und verwendet NIO.

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Aktueller absoluter Pfad ist: " + s);

Dies gibt aus:

Aktueller absoluter Pfad ist: /Users/george/NetBeansProjects/Tutorials

dies ist in meinem Fall der Ort, von dem aus ich die Klasse gestartet habe.

Pfade auf relativem Weg zu konstruieren, ohne ein führendes Trennzeichen zu verwenden, um anzuzeigen, dass es sich um einen absoluten Pfad handelt, verwenden diesen relativen Pfad als Ausgangspunkt.

254voto

Dmitry Bespalov Punkte 5041

Das folgende funktioniert in Java 7 und höher (siehe hier für die Dokumentation).

import java.nio.file.Paths;

Paths.get(".").toAbsolutePath().normalize().toString();

81voto

Mark Punkte 2040

Dies gibt Ihnen den Pfad Ihres aktuellen Arbeitsverzeichnisses:

Path path = FileSystems.getDefault().getPath(".");

Und das gibt Ihnen den Pfad zu einer Datei namens "Foo.txt" im Arbeitsverzeichnis:

Path path = FileSystems.getDefault().getPath("Foo.txt");

Bearbeiten: Um den absoluten Pfad des aktuellen Verzeichnisses zu erhalten:

Path path = FileSystems.getDefault().getPath(".").toAbsolutePath();

* Aktualisierung * Um das aktuelle Arbeitsverzeichnis zu erhalten:

Path path = FileSystems.getDefault().getPath("").toAbsolutePath();

71voto

freedev Punkte 20667

Java 11 und neuer

Diese Lösung ist besser als andere und portabler:

Path cwd = Path.of("").toAbsolutePath();

Oder sogar

String cwd = Path.of("").toAbsolutePath().toString();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X