If(){design}else{art} Processing, le livre

16 février 2013

Faire la liste des fichiers d’un dossier

Filed under: tips — jean-noël Lafargue @ 21 h 10 min

Le programme qui suit permet de faire la liste des fichiers qui se trouvent dans un dossier sélectionné par l’utilisateur.
Cette version est réservée à Processing 2.0 et plus pour deux raisons :
– la librairie « File » n’est plus chargée par défaut, il faut donc l’importer au début du programme. File est une librairie complète d’accès aux fichiers.
– la fonction selectFolder() ne s’utilise plus sans arguments, il faut désormais spécifier un texte à afficher et le nom de la fonction qui est appelée pour traiter le résultat.

// version pour processing 2.07

import java.io.File; // librairie java permettant de manipuler l'objet File dans processing 2 et +
String[] ListeFichiers; // la liste des fichiers
String[] types = {".jpg", ".jpeg", ".png"}; // les types de fichiers qui seront listés

void setup(){
size(800, 600);
}

void draw(){
// fonction à créer lorsque l'on veut utiliser les touches du clavier
}

void keyReleased(){
if(key=='o'){
// Si on clique sur la touche 'o', processing ouvre une boite de dialogue
// pour sélectionner un dossier
// puis le transmet à la fonction nommée "ObtiensLeContenuDuDossier"
selectFolder("choisissez un dossier", "ObtiensLeContenuDuDossier");
}
}

void ObtiensLeContenuDuDossier(File f){
// fonction qui traite
File[] ff = f.listFiles();
ListeFichiers = new String[0];
for(File fff:ff){
String n = fff.getAbsolutePath();
boolean isok = false;
for(String type:types){
// on vérifier que le fichier appartient à un type autorisé
String[] m = match(n, type+"\\Z");
if(m != null){
isok=true;break;
}
}
if(isok){
ListeFichiers = (String[]) append (ListeFichiers, n);
}
}
println(ListeFichiers);
}

Ici, le programme se déclenche lorsque l’on appuie sur la touche « o ». La liste « ListeFichiers » est alors remplie avec tous les chemins absolus vers les fichiers qui ont les terminaisons choisies (ici : jpg, jpeg et png).
Le résultat est ensuite montré à l’aide de la commande println.
Ce programme ne fonctionne pas en mode Javascript.

Powered by WordPress