Rufen Sie das Objekt java.nio.file.Path von java.io.File ab


215

Ist es möglich, ein Path-Objekt von einem zu erhalten java.io.File?

Ich weiß, dass Sie einen Pfad mithilfe der toFile()Methode in eine Datei konvertieren können , aber ich konnte die entgegengesetzte Konvertierung nicht finden. Gibt es eine Möglichkeit, dies in Java 6 oder niedriger zu tun?


Haben Sie sich die API-Dokumentation angesehen?
Vivin Paliath

Ja, ich habe die Auflösungs- und Auflösungssibling-Methoden gesehen, aber das wurde nicht genau von Datei (oder Zeichenfolge) in Pfad konvertiert, sondern in gewisser Weise verkürzt.
Karlovsky120

1
Hier ist auch die Dokumentation, auf die @VivinPaliath anspielt.
Wahrnehmung

1
Es wundert mich, wie die dümmste Frage (ich meine, komm schon, es war in der Dokumentation, kurze Google-Suche hätte es beantwortet) mir die meisten Punkte auf der Website einbringt. : D
Karlovsky120

@ Karlovsky120 es sollte Sie nicht überraschen, wenn Sie versuchen würden, es selbst zu googeln;)
9ilsdx 9rvj 0lo

Antworten:


288

Ja, Sie können es Filemithilfe von vom Objekt abrufen File.toPath(). Beachten Sie, dass dies nur für Java 7+ gilt. Java-Versionen 6 und niedriger haben es nicht.


1
Gibt es eine Möglichkeit, dies in Java 6 oder niedriger zu erreichen?
Karlovsky120

8
Pathwurde in Java 7 eingeführt, daher gibt es in Java 6 und darunter leider keine Möglichkeit, dies zu tun.
Vivin Paliath

33

Aus der Dokumentation :

Mit dem Standard verknüpfte Pfade providersind im Allgemeinen mit der java.io.FileKlasse interoperabel . Von anderen Anbietern erstellte Pfade sind wahrscheinlich nicht mit den durch dargestellten abstrakten Pfadnamen interoperabel java.io.File. Die toPathMethode kann verwendet werden, um einen Pfad aus dem abstrakten Pfadnamen zu erhalten, der durch ein java.io.File-Objekt dargestellt wird. Der resultierende Pfad kann verwendet werden, um dieselbe Datei wie das java.io.FileObjekt zu bearbeiten.Darüber hinaus ist die toFileMethode nützlich, um a Fileaus der StringDarstellung von a zu konstruieren Path.

(Hervorhebung von mir)

Also für toFile:

Gibt ein FileObjekt zurück, das diesen Pfad darstellt.

Und toPath :

Gibt ein java.nio.file.PathObjekt zurück, das aus diesem abstrakten Pfad erstellt wurde.


1
Er will das Gegenteil.
Vivin Paliath

Das bestreite ich nicht :). Ich habe nur erwähnt, was das OP wollte.
Vivin Paliath


10

Wie viele vorgeschlagen haben, hat JRE v1.7 und höher File.toPath ();

File yourFile = ...;
Path yourPath = yourFile.toPath();

In der jdk 1.7-Dokumentation von Oracle, die auch in anderen obigen Beiträgen erwähnt wird, wird der folgende äquivalente Code in der Beschreibung der toPath () -Methode beschrieben, die möglicherweise für JRE v1.6 funktioniert.

File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.