Die JSR 203-Dateiattribut-API

Einführung

Dieses Tutorial ist eine Anleitung zur Verwendung der JSR 203-Dateiattribut-API.

Diese API erschien in Java 7 und wird auch heute noch selten verwendet. Es ist jedoch viel leistungsfähiger als java.io.File.

Die API

Paket

Die Attribut-API befindet sich in java.nio.file.attribute. Sie verwenden Methoden in java.nio.file.Files um auf sie zuzugreifen.

Ansichten und Attribute

Die API besteht aus zwei Hauptkomponenten: Ansichten und Attribute. Einige Ansichten stellen Attribute bereit, andere nicht.

Alle Ansichten haben einen Namen; In der folgenden Liste wird erwähnt, ob die angegebene Ansicht zugehörige Attribute hat:

  • acl;
  • basic (hat Attribute);
  • dos (hat Attribute);
  • owner;
  • posix (hat Attribute);
  • user.

Alle Ansichten erben FileAttributeViewdie eine hat name() Methode, die den obigen Namen zurückgibt.

Abrufen einer Dateiattributansicht von a Path

Um eine Ansicht von einem Pfad zu erhalten, verwenden Sie Files.getFileAttributeView(). Um beispielsweise die zu erhalten basic Blick von einem Weg pathdu wirst benutzen:

Files.getFileAttributeView(path, BasicFileAttributesView.class);

Abrufen von Dateiattributen von a Path

Die in diesem Fall zu verwendende Methode ist Files.readAttributes(). Erhalt der posix Attribute aus einem Pfad werden wie folgt ausgeführt:

Files.readAttributes(path, PosixFileAttributes.class);

Abrufen der Liste der unterstützten Dateiattributansichten

Sie erhalten eine Set<String> aller unterstützten Dateiattributansichten nach Namen mit:

somePath.getFileSystem().supportedFileAttributeViews();

Weitere Hinweise…

Es gibt andere Methoden, die wir weiter unten sehen werden; Tatsächlich gibt es mehrere Möglichkeiten, dasselbe Attribut von a zu erhalten Path. Wenn Sie beispielsweise ein Dateisystem implementieren posix und aclSie haben nicht weniger als zwölf Wege um den Eigentümer der Datei zu erhalten!

Beispiel: Ermitteln der Größe eines Pfads

Erster Weg: mit der Files Klasse

Der einfachere Weg, die Größe zu erhalten, ist die Verwendung dieser:

Files.size(path);

Zweiter Weg: Verwenden von Dateiattributen

Hier ist ein anderer Weg:

Files.readAttributes(path, BasicFileAttributes.class).size();

Beachten Sie das seit DosFileAttributes und PosixFileAttributes beide verlängern BasicFileAttributeses bedeutet auch, dass Sie ersetzen können BasicFileAttributes.class oben mit beiden, vorausgesetzt, Ihr Dateisystem unterstützt dies.

Dritter Weg: Verwenden Files.readAttribute()

Mit dieser Methode können Sie Attribute nach Namen abrufen; hier können Sie verwenden:

Files.readAttribute(path, "basic:size");

Beachten Sie, dass es eine zurückgibt Object, müssen Sie also werfen. Auch, wenn Ihr Dateisystem unterstützt posix, dos oder beides, Sie können auch verwenden "posix:size" oder "dos:size" stattdessen.

Vierter Weg: Gehen Sie durch die Ansicht, um die Attribute zu lesen

Sie können dies auch tun:

Files.getFileAttributeView(path, BasicFileAttributeView.class).readAttributes().size();

Ebenso können Sie auch verwenden DosFileAttributeView.class oder PosixFileAttributeView.class stattdessen.

Fazit

Dies war nur ein Beispiel der API; Denken Sie daran, die Liste der unterstützten Dateiattributansichten aus dem Dateisystem zu erhalten: Es gibt nicht nur die vom JDK definierten!

Wenn Sie beispielsweise eine öffnen FileSystem zu einer Zip-Datei haben Sie ein bestimmtes Dateiattribut mit Namen anzeigen zip die Sie nach Belieben nutzen können.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *