Frage

Frage: Wie unterscheiden Sie programmatisch zwischen Verzeichnissen und regelmäßigen Dateien im Assets Ordner

Wenn Assetmanager den Zugriff auf Dateien im Assets-Ordner verwenden, scheint es unmöglich zu bestimmen, ob eine Datei tatsächlich eine Datei oder ein Verzeichnis. Sie erhalten die Liste der Dateien aus der list Methode und öffnen Sie dann die Datei, um die open Methode. Ich dachte, vielleicht mit der openFd Methode, um den Asset-Dateideskriptor zu erhalten (und dann anschließend die normalen Dateideskriptors anfordert) würde mir einige Informationen zur Verfügung stellen. Aber Anfordern den Dateideskriptor für ein Verzeichnis führt zu einer IOException (was Sinn macht, da das, was es bedeuten würde, ein Verzeichnis einen Dateideskriptor zu haben ...?).

Derzeit auf ich verlasse mich, dass IOException (resultierend aus attemptng ein Verzeichnis zu öffnen, in dem Vermögen Ordner), um zu bestimmen, ob eine Datei in der Tat ist ein Verzeichnis. (Eine normale Datei öffnen funktioniert gut). Dies scheint wie eine schlechte Idee. Alle anderen Vorschläge zu unterscheiden zwischen einer Datei und einem Verzeichnis?

War es hilfreich?

Lösung

Ich stimme mit den Kommentaren zu Ihrem Beitrag. Aber um Ihre Frage zu beantworten, stellen Sie ein File-Objekt auf dem Aktivverzeichnis hingewiesen File root = new File("path/to/directory");

Dann können Sie alle wie dieser seine Unter Dateien und Verzeichnisse extrahieren File[] files = root.listFiles();

Wenn Sie die Liste haben, können Sie bestimmen, was ist das, was mit File.isDirectory ().

Wie für Dateitypen zu bestimmen, die so einfach ist wie mit String.substring (), um den Charakter des nach der letzten Periode zu greifen.

hoffe, das hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top