A voir également:
- Java lister les fichiers d'un répertoire
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Java apk - Télécharger - Langages
3 réponses
Utilisateur anonyme
17 juil. 2007 à 11:32
17 juil. 2007 à 11:32
Bonjour,
/* Voila une methode qui te permettra de dresser la liste de fichier inclus dans un
repertoire, et ceci en recurence :
*/
public ArrayList scanDir ( String theDirectory ) throws IOException
{
File currDir = new File ( theDirectory );
ArrayList finalListFiles = new ArrayList();
// Return null if not a directory
if ( currDir.exists() && ! currDir.isDirectory() )
{
return null;
}
String[] fileList = currDir.list();
for (int i=0; i<fileList.length; i++ )
{
Object temp = scanDir ( theDirectory + File.separator + fileList[i] );
if ( temp == null )
// --- Add the path of the current file
finalListFiles.add(theDirectory + File.separator + fileList[i]);
else
// --- Add the array list of the current directory
}
// --- Finally, return the arrayList
return finalListFiles;
}
/*
Et ceci de facon recurente, c'est a dire que ca te donnera toute l'arborescence d'un
repertoire si tu as des sous-dossiers. Pour y faire appel :
ArrayList arborescence = scanDir ( "Chemin complet du repertoire");
*/
}
/* Voila une methode qui te permettra de dresser la liste de fichier inclus dans un
repertoire, et ceci en recurence :
*/
public ArrayList scanDir ( String theDirectory ) throws IOException
{
File currDir = new File ( theDirectory );
ArrayList finalListFiles = new ArrayList();
// Return null if not a directory
if ( currDir.exists() && ! currDir.isDirectory() )
{
return null;
}
String[] fileList = currDir.list();
for (int i=0; i<fileList.length; i++ )
{
Object temp = scanDir ( theDirectory + File.separator + fileList[i] );
if ( temp == null )
// --- Add the path of the current file
finalListFiles.add(theDirectory + File.separator + fileList[i]);
else
// --- Add the array list of the current directory
}
// --- Finally, return the arrayList
return finalListFiles;
}
/*
Et ceci de facon recurente, c'est a dire que ca te donnera toute l'arborescence d'un
repertoire si tu as des sous-dossiers. Pour y faire appel :
ArrayList arborescence = scanDir ( "Chemin complet du repertoire");
*/
}
Plus simple :
public void listerRecursif(File file, String prefix, List liste) { if (file.exists()) { if (file.isFile()) { liste.add(prefix+file.getName()); } else if (file.isDirectory()) { File[] contenu = file.listFiles(); for(int i=0; i<contenu.length; i++) { listerRecursif(contenu[i], prefix+file.getName()+"/", liste); } } } }
Je crois avoir touvé la solution. Je déclare d'abord une variable dans ma classe de type ArrayList que je vais renseigner au fur et à mesure. J'obtiens une ArrayList que je n'ai plus qu'à transtyper pour avoir ma liste de File.
private ArrayList listeFichiers = null;
private void scruteRepertoire(File fichier, boolean reset){
if (reset){
listeFichiers.clear();
}
if (fichier.isDirectory()){
File [] sousRepertoire = fichier.listFiles();
for (int i=0 ; i<sousRepertoire.length ; i++){
scruteRepertoire(sousRepertoire[i],false);
}
}
listeFichiers.add(fichier);
}
public static void main(String[] args) {
File repertoire = new File(ParametresApplication.getInstance().getRepertoireScrutation());
scruteRepertoire(repertoire, true);
File[] tableauFichier = new File[listeFichiers.size()];
for (int i =0 ; i<listeFichiers.size() ; i++){
tableauFichier[i] = (File)listeFichiers.get(i);
}
}
private ArrayList listeFichiers = null;
private void scruteRepertoire(File fichier, boolean reset){
if (reset){
listeFichiers.clear();
}
if (fichier.isDirectory()){
File [] sousRepertoire = fichier.listFiles();
for (int i=0 ; i<sousRepertoire.length ; i++){
scruteRepertoire(sousRepertoire[i],false);
}
}
listeFichiers.add(fichier);
}
public static void main(String[] args) {
File repertoire = new File(ParametresApplication.getInstance().getRepertoireScrutation());
scruteRepertoire(repertoire, true);
File[] tableauFichier = new File[listeFichiers.size()];
for (int i =0 ; i<listeFichiers.size() ; i++){
tableauFichier[i] = (File)listeFichiers.get(i);
}
}