146 votes

Comment lister des fichiers dans un répertoire Android ?

Voici mon code pour l'instant :

 String path = Environment.getExternalStorageDirectory().toString()+"/Pictures";

        AssetManager mgr = getAssets();

        try {

            String list[] = mgr.list(path);
            Log.e("FILES", String.valueOf(list.length));

            if (list != null)
                for (int i=0; i<list.length; ++i)
                    {
                        Log.e("FILE:", path +"/"+ list[i]);
                    }

        } catch (IOException e) {
            Log.v("List error:", "can't list" + path);
        }

Pourtant, alors que j'ai des fichiers dans ce répertoire, il me renvoie list.length = 0... des idées ?

388voto

Yury Points 10837

Pour accéder aux fichiers, les autorisations doivent être données dans le fichier manifeste.

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Essaye ça:

 String path = Environment.getExternalStorageDirectory().toString()+"/Pictures";
Log.d("Files", "Path: " + path);
File directory = new File(path);
File[] files = directory.listFiles();
Log.d("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
    Log.d("Files", "FileName:" + files[i].getName());
}

48voto

danbrough Points 866

Je viens de découvrir que :

new File("/sdcard/").listFiles() renvoie null si vous n'avez pas :

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

défini dans votre fichier AndroidManifest.xml.

2voto

Alex Points 15303

Votre path ne se trouve pas dans le dossier des ressources. Soit vous énumérez les fichiers dans le dossier assets au moyen de AssetManager.list() soit vous énumérez les fichiers sur votre carte SD au moyen de File.list()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X