2 Stimmen

einen Dateipfad erhalten

Gibt es eine Möglichkeit, den vollständigen Pfad zu einer auf dem Computer vorhandenen Datei abzurufen? Ich möchte zum Beispiel den vollständigen Pfad für eine Datei in einem Ordner auf dem Desktop abrufen

Ich habe es mit :

  File f = new File("help.chm");

  String f2=f.getAbsolutePath();
  f3=f3.replaceAll("\\\\","/" );
  System.out.println("Path:"+f3);

aber es gab mir den Pfad des Projekts wie folgt:

C:/Benutzer/toshiba/Dokumente/NetBeansProjects/test/help.chm

obwohl sich die Datei dort nicht befindet.

2voto

Rohit Jain Punkte 207783

Wenn Sie eine file mit new File("filename") die die relative path können Sie den absoluten Pfad der Datei nicht ermitteln, indem Sie file.getAbsolutePath() da der relative Pfad entsprechend dem Standard-Home-Verzeichnis des Benutzers oder dem JVM-Pfad erstellt wird.

Werfen Sie einen Blick auf Java-Doku : -

Ein Pfadname, ob abstrakt oder in Form einer Zeichenkette, kann e oder relativ sein. Ein absoluter Pfadname ist insofern vollständig, als keine weiteren Informationen erforderlich sind, um die Datei zu finden, die er bezeichnet.

Ein relativer Pfadname, in con Informationen interpretiert werden, die von einem anderen Pfadnamen stammen. Standardmäßig werden die Klassen in java.io-Paket lösen relative Pfadnamen immer gegen das aktuellen Benutzerverzeichnis auf. Dieses Verzeichnis wird durch die Systemeigenschaft user.dir benannt und ist normalerweise das Verzeichnis, in dem die virtuelle Java Maschine aufgerufen wurde.

Um also die absolute path in diesem Fall müssten Sie den Pfad selbst schreiben. Holen Sie sich die absolute path bis zu dem Verzeichnis, in dem Sie die file , und fügen Sie die file name dazu.

0voto

Bohemian Punkte 386825

A File ist eine Darstellung einer Datei Pfad nicht notwendigerweise eine existierende Datei auf der Festplatte - d.h. die Datei muss nicht auf der Festplatte existieren, um eine File Objekt nicht zu sein null .

Deshalb gibt es die File.exists() Methode.

0voto

Zach Musgrave Punkte 962

Der Pfad "help.chm" ist relativ zu dem Verzeichnis, von dem aus Sie die JVM gestartet haben, was in Ihrem Fall anscheinend C:/Users/toshiba/Documents/NetBeansProjects/test/

Um einen Pfad zum Desktop zu erhalten, müssen Sie den absoluten Pfad des Desktop-Verzeichnisses in Windows verwenden, der in etwa so aussieht C:/Users/toshiba/Desktop/help.chm

0voto

sorifiend Punkte 5847

Da die anderen Antworten Ihre Frage nicht abdecken, ist hier mein Kommentar:

Um den Pfad einer Datei zu ermitteln, müssen Sie Ihrem Java-Programm zunächst mitteilen, wo sich die Datei befindet oder wie sie zu finden ist.

Für Ihr spezielles Beispiel können Sie den Desktop-Pfad mit abrufen: System.getProperty("user.home") + "/Desktop"; dann können Sie die Ordner auf Ihrem Desktop nach einem passenden Dateinamen durchsuchen.

Lesen Sie hier, wie Sie nach Dateien suchen können: docs.oracle.com/javase/tutorial/essential/io/find.html

0voto

Tulains Córdova Punkte 2448

Sie versuchen, die Datei zu lesen von (Standardordner)

C:/Users/toshiba/Documents/NetBeansProjects/test/

Die Datei existiert nicht, aber der Pfad der Möchtegern-Datei lautet

C:/Users/toshiba/Documents/NetBeansProjects/test/

Wenn Sie die Datei von dort aus lesen, wo sie wirklich ist:

File f = new File("C:/Users/toshiba/Desktop/help.chm");

Sie werden sehen, dass exists() gibt true zurück.

 System.out.println(f.exists());

Dann:

  String f2=f.getCanonicalPath();

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