IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Chemin vers fichier dans le dossier assets


Sujet :

Android

  1. #1
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut Chemin vers fichier dans le dossier assets
    Bonjour,

    je bloque sur un probleme qui me paraissait pourtant asser simple, j'aimerais passez a une fonction le chemin d'un fichier ".obj" present dans le dossier assets de mon application, cette fonction se chargerais ensuite de lire mon fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MeshIO.read("file:///android_asset/bigguy.obj", "bigguy");
    mais la fonction me renvoie toujours null, quel chemin faut il passer pour acceder au fichier ?

    merci d'avance

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Pour récupérer les données dans les assets, veuillez utiliser la fonction getAssets qui est fait pour cela et non ce chemin file:///android_asset/.

    http://developer.android.com/referen...ml#getAssets()

    Cela te donnerais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream is = getResources().getAssets().open("bigguy.obj");
    Cette fonction est accessible aussi depuis le Context

  3. #3
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    d'accord donc pas moyen de ne recuperer que le chemin du fichier, ilf aut donc que je modifie ma fonction read

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Si normalement cela devrait marcher converti ton chemin en Uri avant.

    Maintenant le mieux est quand même de passer par les ressources

  5. #5
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Bonjour,

    ok merci je vais regarder cela, et du cou c'est quel chemin que je doit convertir en URI : c'est "file:///android_asset/bigguy.obj" ?

  6. #6
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Bonjour du cou j'essaye de copier mon fichier bigguy dans mon application:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     try {
                String FILE_TO_READ="bigguy.obj"; //file in asset folder
                String TEMP_FILE_NAME="bigguy.obj"; //or whatever file name you want to give
                byte[] buffer = new byte[1024];
                int len1 = 0;
     
     
                InputStream istr=(getResources().getAssets().open(FILE_TO_READ));
                FileOutputStream fos=openFileOutput(TEMP_FILE_NAME,MODE_WORLD_READABLE);
     
                while ((len1 = istr.read(buffer)) !=-1) {
                    fos.write(buffer, 0, len1); // Write In FileOutputStream.
                }
                fos.flush();
                fos.close();
     
                istr.close();
     
            }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    mais cela ne fonctionne pas : les logs me renvoie une erreur

  7. #7
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour

    Tu pourrais nous dire quelle erreur il te renvoie, sinon pour l'Uri oui c'est bien ce chemin .

  8. #8
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Bonjour

    Tu pourrais nous dire quelle erreur il te renvoie, sinon pour l'Uri oui c'est bien ce chemin .
    je viens de refaire un test, ca n'a pas planter. Est ce que je peux voir sur le simulateur si mon fichier a bien été copié ?

  9. #9
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Oui, soit par l'adb (ligne de commande) soit par le ddms (interface), je me rappelle plus si on y a accès mais tu peux essayer .

    Sinon depuis le code tu peux lister les fichiers présents dans le dossier Assets

    AssetManager fonction getLocales() ou list(string dir) si tu veux un sous dossier .

  10. #10
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Oui, soit par l'adb (ligne de commande) soit par le ddms (interface), je me rappelle plus si on y a accès mais tu peux essayer .

    Sinon depuis le code tu peux lister les fichiers présents dans le dossier Assets

    AssetManager fonction getLocales() ou list(string dir) si tu veux un sous dossier .
    ok merci je vais regarder ca.

  11. #11
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Je suis un peu perdu :

    voila ou j'en suis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
      try {
                String FILE_TO_READ="bigguy.obj"; //file in asset folder
                String TEMP_FILE_NAME="bigguy.obj"; //or whatever file name you want to give
                byte[] buffer = new byte[1024];
                int len1 = 0;
     
                InputStream istr=(getResources().getAssets().open(FILE_TO_READ));
    			FileOutputStream fos = openFileOutput(TEMP_FILE_NAME, MainActivity.MODE_PRIVATE);
                while ((len1 = istr.read(buffer)) !=-1) {
                    fos.write(buffer, 0, len1); // Write In FileOutputStream.
                }
                fos.flush();
                fos.close();
     
                istr.close();
     
            }
    	    catch(Exception e)
    	    {
    	        Log.e("mesh",e.toString());
    	    }
     
            Mesh mesh = MeshIO.read(chemin, "bigguy");
    la fonction getBaseContext().fileList() contient un bigguy.obj, je pense donc avoir copier mon fichier, mais je ne sais pas trop ou il est , du cou je ne sais pas qu'elle chemin envoyé a ma focntion read

  12. #12
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Ton fichier est dans le répertoire privé de ton application

    data/data/tonnomdepackage/

    Te prends pas la tête, utilise la fonction openFileInput et tu n'auras besoin de lui passer que l nom soit TEMP_FILE_NAME . Pas besoin de connaître le chemin.

  13. #13
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    ok merci je vais regarder ca.

  14. #14
    Membre chevronné
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 175
    Par défaut
    Ca y est ca fonctionne enfin, j'ai pu afficher mon obj dans le simulateur merci Feanorin pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. chemin vers fichiers/répertoire dans une classe
    Par Xunil dans le forum Langage
    Réponses: 5
    Dernier message: 13/04/2007, 10h14
  2. Réponses: 35
    Dernier message: 21/05/2006, 21h01
  3. [Upload] upload de fichier dans un dossier creer en ligne
    Par jeanfrancois dans le forum Langage
    Réponses: 1
    Dernier message: 20/03/2006, 14h09
  4. Réponses: 7
    Dernier message: 05/01/2006, 01h06
  5. Pb de comptage de fichiers dans un dossier
    Par oz80 dans le forum Access
    Réponses: 2
    Dernier message: 15/11/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo