Rechercher : dans
Par :

JAVA lister contenu d'un répertoire

Dernière réponse le 5 aoû 2008 à 10:24:34 Nicocotiers, le 28 jun 2004 à 16:40:23 
 Signaler ce message aux modérateurs

Bonjour tout le monde, j'ai crée la fonction suivante qui me liste le contenu de mon répertoire.
J'aurais voulu juste afficher les fichiers ".java" de ce répertoire.
comment faire??
de plus, j'aimerais que les noms des fichiers (sans extensions). Est-ce possible? si oui comment?

public void listerRepertoire(File repertoire){
String [] listefichiers;

int i;
listefichiers=repertoire.list();
for(i=0;i<listefichiers.length;i++){
System.out.println(listefichiers[i]);

}
}



merci d'avance

Meilleures réponses pour « JAVA lister contenu d'un répertoire » dans :
[PHP] Lister le contenu d'un répertoire Voir Grâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
[Windows] Obtenir la liste des fichiers d'un dossier VoirLister le contenu d'un dossier Voici une astuce simple qui permet de lister le nom des fichiers contenus dans un répertoire. Vous pourrez obtenir en un clic les titres de vos chansons, de vos photos, etc. dans un fichier...
Voir le contenu d'un fichier .jar VoirRien de plus facile que de voir ce que contient un fichier .jar: Renommez-le en .zip et ouvrez-le ! Si vous voulez voir ce que contiennent les programmes java compilés .class, vous devrez utiliser un décompilateur Java tel que JAD:...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...

1

Nicocotiers, le 29 jun 2004 à 09:11:47

Personne ne sait? pas possible?
merci de répondre

bonne journée

Répondre à Nicocotiers

2

Nicocotiers, le 29 jun 2004 à 09:20:47
  • +1

J'ai trouvé ça et je vais tester!


import java.io.*;

public class FiltreFichierJava implements FilenameFilter {
public static void main(String args[]) throws IOException {
File f = new File(".");
FilenameFilter filter = new FiltreFichierJava();
System.out.println("Fichiers Java : " );
String[] noms = f.list(filter);
for (int i = 0; noms != null && i < noms.length; i++)
System.out.println("\t" + noms[i]);
}

public boolean accept(File dir, String name) {
return (name.endsWith(".java"));
}
}

Répondre à Nicocotiers

3

Nicocotiers, le 29 jun 2004 à 10:27:47
  • +5

Voilà j'ai crée cette méthode (elle fonctionne nikel) pour afficher la liste des fichiers .java du répertoire "répertoire"


public void listerRepertoire(File repertoire){

String [] listefichiers;

int i;
listefichiers=repertoire.list();
for(i=0;i<listefichiers.length;i++){
if(listefichiers[i].endsWith(".java")==true){

System.out.println(listefichiers[i].substring(0,listefichiers[i].length()-5));// on choisit la sous chaine - les 5 derniers caracteres ".java"
}
}
}

Répondre à Nicocotiers

4

eflash, le 8 nov 2007 à 09:59:58

Merci pour ton monologue, cela m'a servis

Répondre à eflash

5

javabeginer, le 3 jan 2008 à 16:47:03

A moi aussi ...
Merci.

Répondre à javabeginer

6

rafinenesse, le 17 jan 2008 à 13:58:58

A moi aussi, bravo pour tes recherches.

Répondre à rafinenesse

7

mArm, le 4 mar 2008 à 09:23:28

Idem xD

Répondre à mArm

8

scaythe, le 23 avr 2008 à 11:22:46
  • +2

Bon je débute en java, mais magré tout , j'aurais codé ainsi (solution + générique ?)

/*
En autre :
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import java.util.regex.Matcher;
*/

Des variables :
String path= "c:\toto";
String filtre = "toto_(\w*).txt";


Corps Méthode

Pattern p = Pattern.compile(filtre);
String [] s = new File(path).list();
List<String> listeFichiers = new ArrayList<String>();
for (int i=0; i<s.length;i++)
{
Matcher m = p.matcher(s[i]);
if ( m.matches())
{
listeFichiers.add(s[i]);
}
}


voilà dans "listeFichiers" tu récupères tous les fichiers qui répondent à ton "filtre" .. c'est une regex, java est pas mal pour ça, serait dommage de s'en passer....

Répondre à scaythe

9

scaythe, le 23 avr 2008 à 12:02:34
  • +3

Pardon je ne réponds qu'à moitié avec l'affichage cela donne :

import java.util.*;
import java.util.Date;
//import java.util.StringTokenizer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
//import java.text.DateFormat;
//import java.lang.*;
import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import java.util.regex.Matcher;

public class TEST {

/**
* @param args
*/
public static void main(String[] args)
{
try
{
String path = args[0];
String filtre = args[1];
Pattern p = Pattern.compile(filtre);
String [] s = new File(path).list();
List<String> listeFichiers = new ArrayList<String>();
for (int i=0; i<s.length;i++)
{
Matcher m = p.matcher(s[i]);
if ( m.matches())
{
System.out.println(m.group(1));
listeFichiers.add(s[i]);
}
}
}
catch (PatternSyntaxException pse)
{
pse.printStackTrace();
}
}
}


sI je positionne
args[0] = "c:\test"
args[1] = "(\w*_\d*)(.txt)"

Le répertoire contient :
Check2.exe
Interop.SHDocVw.dll
lance.bat
nunit.framework.dll
Rhino.Mocks.dll
test_1.txt
test_2008.txt
test_2008_1.txt
WatiN.Core.dll
WatiN.Core.UnitTests.dll


Resultat serait :
test_1
test_2008
test_2008_1


Voilà qui devrait aider

Répondre à scaythe

10

 toto32, le 5 aoû 2008 à 10:24:34
  • +1

Merci pour la solution... ;)

Répondre à toto32