2011-11-12 5 views
1

im nouveau pour le développement android alors s'il vous plaît pardonnez-moi si c'est une chose facile à faire. Je veux obtenir tous les fichiers dans un répertoire sur la carte SD et les afficher dans un spinner, mais je ne peux pas savoir comment. c'est ce que j'ai et je ne sais même pas si tout est bon.comment lister les fichiers dans un répertoire?

//creates this directory if its not there??  
File sd = new File("/sdcard/myfolder"); 

       //gets a list of the files 
       File[] sdDirList = sd.listFiles(); 

       //add them to the spinner array (this makes it crash) 
       for(int i=0;i<sdDirList.length;i++) 
       array_spinnerLoad[i] = sdDirList[i].getName(); 

alors où vais-je me tromper? un lien utile à un tutoriel facile à utiliser n'importe où? il n'a pas besoin d'être une fileuse, juste une liste que je peux choisir parmi

merci :)

modifier: il ne marche pas plantage avec cela, mais le tableau de spinner n'est pas rempli

File[] sdDirList = sd.listFiles(); 
      if (sdDirList != null) 
      { 
       array_spinnerLoad=new String[sdDirList.length]; 

      for(int i=0;i<sdDirList.length;i++) 

      array_spinnerLoad[i] = sdDirList[i].getName(); 
     } 
+1

Petite astuce * (je ne sais pas si c'est le problème ici, juste en général) *: Ne pas coder les chemins vers des choses comme la carte SD - parce que ces chemins varient sur différents périphériques. Utilisez ['Environment.getExternalStorageDirectory()'] (http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()) à la place. Il retournera un chemin valide vers le stockage de masse primaire sur chaque périphérique. –

+0

yep null pointeur exception – user1033558

Répondre

4

Si /sdcard/myfolder n'existe pas ou n'est pas un répertoire, alors listFiles renvoie null. Vous vous plantez probablement avec un NPE. Vous pouvez utiliser exists() et isDirectory() pour diagnostiquer ce qui ne va pas. (De plus, vous pouvez tester cela sdDirList != null.)

P.S. Cela vous aiderait à obtenir des réponses plus précises pour publier des détails sur l'accident, comme l'exception.

+0

ok merci comme je l'ai dit im nouveau à cela. logcat dit sa ligne array_spinnerLoad [i] = sdDirList [i] .getName(); créer un nullpointerexeption – user1033558

+0

@ user1033558 - C'est ce qui arriverait si 'sdDirList' était' null' - vous essayez d'accéder au premier élément d'un tableau qui n'existe pas. (Cela se produirait aussi si 'sdDirList' avait' null' comme premier élément, mais 'listFiles' ne renverrait pas de valeurs' null' dans le tableau.) –

+0

merci ted, j'ai mis manuellement les fichiers dans le répertoire et encore theres rien ici. pense que j'ai besoin d'un tutoriel, mais j'ai trouvé 1 je comprends encore. – user1033558

Questions connexes