2010-06-13 19 views
22
InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3"); 

Ich habe eine Datei im Assets-Ordner in einem Unterordner wie oben. Die Datei wird jedoch nicht angezeigt. Gibt es eine spezielle Möglichkeit, einen Unterordner im Ordner "Assets" anzugeben?Android-Assets mit Unterordnern

Ian

+1

Das sieht korrekt aus - werden Ausnahmen wie IOException ausgelöst? –

+0

Ja, aber seltsamerweise ist die Ausnahme leer, keine "Ursache" –

+0

Wenn Sie den Stack-Trace in Ihre ursprüngliche Frage einfügen können, wäre das sehr hilfreich. –

Antwort

39

Edit: war falsch über Unterordner.
Dieser Code funktioniert gut auf 1,5 (für eine Datei sample.txt in assets unter sub Ordnern abgelegt):

InputStream is = getAssets().open("sub/sample.txt"); 
BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
String line = null; 
while ((line = br.readLine()) != null) { 
    Log.e("wtf", line); 
} 
br.close(); 

Sind Sie sicher, dass Sie die Namen richtig gemacht haben?

+0

Die Docs sagen, Sie können aber. –

5

Ist Ihre Asset-Datei größer als 1 MB?

Ich bemerke, dass ich dieselbe ungerade, leere IOException bekomme, wenn ich versuche, ein Asset zu öffnen, das diese Größe überschreitet. Die Tatsache, dass es sich in einem Unterordner befindet, könnte ein Ablenkungsmanöver sein. Ich versuche eine große Textdatei zu öffnen, damit ich diese Grenze umgehen kann, indem ich sie aufteile. Können Sie etwas Ähnliches mit Ihrer .db3-Datei machen?

+0

omfg wtf !!! Das ist ein dummer Fehler und sie sollten das beheben. Vielen Dank für das Schreiben dieser Antwort, es ist sicherlich der gleiche Fall für mich, wo ich eine .ogg-Datei unter "Musik/blah.ogg" hatte, die nicht funktionierte, weil es weit über 1 MB war, aber eine andere Datei "Musik/foo.ogg "funktioniert und es ist nur 26 kb ... –

5
"MyFolder/" + "MyFile.db3" 

Ein Dateiname für Dateien, die dem Asset-Ordner hinzugefügt werden, muss in Kleinbuchstaben erfolgen. Also, ein Dateiname wie MyFolder und Myfile.db3 ist ungültig. Benenne sie in "myfolder" und "myfile.db3" um, alles wird gut.

Verwandte Themen