2010-07-19 5 views
5

Ich versuche, die Namen meiner Ordner in "Assets" zu erhalten. Ich kann die Namen der Dateien mit einem AssetManager abrufen, indem ich die Methode assetManager.list() verwende. Das Problem ist jedoch, dass nur die Namen der Dateien und nicht die Namen der Ordner zurückgegeben werden. Ich versuche also, die Methode listFiles() zu verwenden, aber ich kann nicht auf das Verzeichnis Assets zugreifen. Ich versuche, habe folgendes:Abrufen von Ordnername aus Assets-Verzeichnis

File dir = new File ("file:///android_asset/"); 
File[] files= dir.listFiles(); 

Aber es funktioniert nicht :(... Gibt es eine Möglichkeit die Ordner Namen in der Assets Verzeichnis enthalten sind, zu erhalten

+0

Lesen Sie diesen Link es hat die Antwort, die Sie wollen ? – user3156262

Antwort

2

Die URL „Datei?: /// android_asset/"zeigt nicht auf ein bestimmtes Verzeichnis, es wird nur von WebView verwendet, um Assets zu adressieren. Assets sind schreibgeschützt und werden zur Kompilierzeit definiert, daher wird angenommen, dass ihre Verzeichnisstruktur dem Programmierer bekannt ist. Es ist unbequem , aber das ist die Art, wie es entworfen wurde

+0

Argh! Nein du meinst es ernst? Gibt es wirklich keine Möglichkeit, dies zu tun? (Ich habe auch Java-Reflektion versucht, aber es funktioniert nur für Raw-Ordner nicht für Asset). Auch wenn es komplex ist ...? – Nox

+0

Ich würde vorschlagen, ein Skript zu erstellen, das in der Kompilierungszeit eine XML- oder andere Struktur generiert, die den Inhalt des Verzeichnisses der Assets darstellt. Warum musst du in Runtime tun? – ognian

+0

Nun, meine App zeigt Bilder aus Asset-Verzeichnis, aber sie sind in einer Hierarchie von Ordnern in Asset. Ich denke, ich werde dann die Hierarchie im Namen angeben. Mit Namen wie "Blumen/Rosen.jpg" anstelle eines Ordners "Blumen" und dann den Namen manipulieren, um die Hierarchie zu finden. – Nox