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 éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éminent

    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
    Points : 9 149
    Points
    9 149
    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
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éminent

    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
    Points : 9 149
    Points
    9 149
    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
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour

    Tu pourrais nous dire quelle erreur il te renvoie, sinon pour l'Uri oui c'est bien ce chemin .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  8. #8
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éminent

    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
    Points : 9 149
    Points
    9 149
    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 .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  10. #10
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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 éminent

    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
    Points : 9 149
    Points
    9 149
    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.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  13. #13
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    Par défaut
    ok merci je vais regarder ca.

  14. #14
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    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 : 174
    Points : 661
    Points
    661
    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