Fonction java listFile

Geaktoni - 31 janv. 2013 à 16:36
 Utilisateur anonyme - 4 févr. 2013 à 13:36
Bonjour la communautée ^^!!

je voudrais vous demander comment je pourrais faire pour trier des fichiers avec la fonction listFiles filter

je me suis renseigné mais j'y arrive vraiment pas.

je vous décris ce que je veux faire :

Je tante de récupérer le nom des fichiers dans mon répertoire choisi qui on ce nom ... _RoadMap.js et je voudrais faire un filtre en ciblant le RoadMap.
Car j'ai d'autre fichier à l’intérieur que je peux pas déplacer autrement je l'aurai fais.

Vous avez une solution à me proposer ou un exemple je vous remercie.

9 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
31 janv. 2013 à 17:38
Oui, tu utilises la méthode listFiles avec en paramètres un FileFilter ou un FileNameFilter, suivant ce qui te semble le plus simple pour ton besoin.
Tu n'auras qu'à implémenter l'un ou l'autre, sachant qu'il n'y a qu'une méthode à implémenter.
0
Hello !!

Je veux bien accepter ta solution, mais alors mon code ressemblera à cela :


String repertoire = "...;

System.out.println(repertoire);
File rep = new File(repertoire);
File[] files= rep.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
ce que je comprend pas c'est ce qui me met par défaut écriture en bleu.
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
1 févr. 2013 à 10:35
Salut, oui c'est l'idée. Si tu n'as pas l'utilité de réutiliser ce filtre tu peux le faire comme ça. Il ne te reste plus qu'à remplacer :

throw new UnsupportedOperationException("Not supported yet.");

par le code de ton choix, soit probablement un truc du style :

return name.contains("RoadMap");

Pourquoi ce code est en bleu ? Je ne sais pas, quel éditeur utilises-tu ?
Peut-être est-ce la couleur pour les méthodes surchargées dans ton éditeur, ou peut-être est-ce spécifique aux classes anonymes.
0
Merci je vais tester cela et pour l'écriture en bleu c'est moi qui l'ai mis quand j'ai écrit pour préciser ce que je comprenais pas mais j'utilise l'éditeur netbean et il l'écrit aussi en bleu mais c'est par défaut.

je redirai si cela fonctionne ou pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Re Hello !!

Alors j'ai fais comme cela mais il ne me place rien dans ma combobox mais dans le tableau

File rep = new File(repertoire);
File[] listCours=rep.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.contains("roadmap");
}
});

mes fichiers sont écris comme cela Fundamental_roadmap.js

je pige pas -_-'
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
1 févr. 2013 à 20:06
"il ne me place rien dans ma combobox mais dans le tableau"

Désolé mais je pige pas ton souci, montre-nous le code de ta combo box et comment tu la remplis.
0
Voilà comment j'ai fais

File rep = new File(repertoire);
String listCours[];
//test si le répértoir et juste et si il existe
if(rep.isDirectory()&&rep.exists()){
listCours = rep.list();
//test si le tableau si il est plain
if(listCours.length!=0){
//test si le tableau et que d'une grandeur
if(listCours.length==1){
CbbCours.removeAllItems();
CbbCours.addItem(listCours[0]);
}
//si le tableau est plus grand que 1
else{
//récupère la valeur de la liste pour plus tard
String selected = CbbCours.getSelectedItem().toString();
//efface tout la liste et la remplis a nouveau
CbbCours.removeAllItems();
CbbCours.addItem("all");
System.out.println("selected : " + selected);
for(int i=0; i<listCours.length;i++){
System.out.println(listCours[i]);
if(listCours[i].endsWith(".js")){
CbbCours.addItem(listCours[i]);
}
else{
System.out.println("le fichier n'a pas cette extension !! ");
}
}
//permet de garder la selection d'un cour
CbbCours.setSelectedItem(selected);
}
}
else{
CbbCours.removeAllItems();
CbbCours.addItem("all");
}
}
else{
CbbCours.addItem("all");
}
0
j'ai trouver une solution en cherchant bien j'ai compris pk je te remercie quand même du coup de main. ^^

mais j'ai un autre problème je voudrai récupérer des info dans les ligne d'un fichier

J'arrive déjà a lire le fichier ligne par ligne et à trouver les lignes que je veux mais je n'arrive pas à extraire le contenu de la ligne trouvée
qui se trouve entre deux guillmet comme cette exemple title:"m1";
et je voudrais m1
tu sais comment faire ça ??

voici un example de mon code
try
{ BufferedReader br = new BufferedReader(new InputStreamReader(new java.io.FileInputStream(repertoire), "utf8"));
String ligne = null;
String guilmet= "''";
while ((ligne = br.readLine()) != null)
{
str.append(ligne);
if(ligne.contains("title")){
txtaDebug.setText(txtaDebug.getText().concat(ligne + "\r\n"));
}
}catch(Exception err)
{
JOptionPane.showMessageDialog(null,err);
System.out.println("error");
}
0
Utilisateur anonyme
4 févr. 2013 à 13:36
Salut,

Il y a quelques sujets sur le forum qui parlent de la découpe de chaîne, et je suis à court de temps pour te chercher lesquels donc jettes-y un coup d'oeil ;)
Sinon regarde du côté des String Tokenizer


--
Pylouq
Heureux sont ceux qui lisent le Réglement, ils ne finiront peut-être pas au bûcher.
0
Rejoignez-nous
A voir également