web-dev-qa-db-fra.com

Android Actifs avec sous-dossiers

InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");

J'ai un fichier dans le dossier des actifs dans un sous-dossier comme ci-dessus. Cependant, il n'obtient pas le fichier, existe-t-il un moyen spécial de spécifier un sous-dossier dans le dossier des actifs?

Ian

24
Ian Vink

Edit: se trompait sur les sous-dossiers.
Ce code fonctionne très bien sur 1.5 (pour un fichier sample.txt placé sous le dossier sub dans assets):

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();

Êtes-vous sûr que vous avez les bons noms?

40
yanchenko
"MyFolder/" + "MyFile.db3"

Le nom de fichier des fichiers ajoutés au dossier des ressources doit être en minuscule. par conséquent, un nom de fichier tel que MyFolder et Myfile.db3 n'est pas valide. Renommez-les en "mon dossier" et "monfichier.db3", alors tout ira bien.

7
Spark

Votre fichier de ressources est-il supérieur à 1 Mo?

Je remarque que j'obtiens la même exception IOException vide et vide si j'essaie d'ouvrir un élément qui dépasse cette taille. Le fait qu'il se trouve dans un sous-dossier peut être un hareng rouge. J'essaie d'ouvrir un grand fichier texte afin de pouvoir contourner cette limite en la fractionnant. Pouvez-vous faire quelque chose de similaire avec votre fichier .db3?

6
CalloRico