Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Lister les fichiers d'un repertoire.

Sujet résolu
    3 janvier 2014 à 13:20:32

    Salut, donc voila je travail un sur un explorateur de fichier. J'ai essayer de faire le "listage" d'un répertoire dans un asynctask mais sa plante avec une

    01-03 13:14:14.865: W/dalvikvm(8783): threadid=11: thread exiting with uncaught exception (group=0x40adb228)

    //ERREUR :
    
    01-03 13:14:14.865: W/dalvikvm(8783): threadid=11: thread exiting with uncaught exception (group=0x40adb228)
    01-03 13:14:14.865: E/AndroidRuntime(8783): FATAL EXCEPTION: AsyncTask #1
    01-03 13:14:14.865: E/AndroidRuntime(8783): java.lang.RuntimeException: An error occured while executing doInBackground()
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at android.os.AsyncTask$3.done(AsyncTask.java:278)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.lang.Thread.run(Thread.java:864)
    01-03 13:14:14.865: E/AndroidRuntime(8783): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at com.creative.dexplorer.MainActivity$listFiles.doInBackground(MainActivity.java:78)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at com.creative.dexplorer.MainActivity$listFiles.doInBackground(MainActivity.java:1)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at android.os.AsyncTask$2.call(AsyncTask.java:264)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    01-03 13:14:14.865: E/AndroidRuntime(8783): 	... 5 more
    



    Voici le code :

    	  	protected Void doInBackground(Void... arg0) {
    	    	// On récupère la liste des fichiers du nouveau répertoire
    	  		File f2 = new File(aFile);
    	    	File[] fichiers = f2.listFiles();
    	    	int i = 0;
    	    	// Si le répertoire n'est pas vide...
    	    	if(fichiers != null)
    	    		// On les ajoute à  l'adaptateur
    	    		for(File f : fichiers)
    	    		{
    	    			list[i] = f.toString(); i++;
    	    			Log.v("$$$$$###########$$$$$", "File : " + f.toString());
    	    		}
    	    	// Et on trie l'adaptateur
    	    	
    	  		return null;
    	  	}

    list[i] est un tableau de string pour pouvoir apres faire une listview.

    Voila merci d'avance !.
    Creative

    -
    Edité par CreativeHD 3 janvier 2014 à 13:22:34

    • Partager sur Facebook
    • Partager sur Twitter
      3 janvier 2014 à 13:34:34

      Resolu j'ai remplacer mon tableau de string en :
      static List<String> list = new ArrayList<String>();
      • Partager sur Facebook
      • Partager sur Twitter

      [Android] Lister les fichiers d'un repertoire.

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown