Bonjour,
J' ai un projet en java pur : c'est un programme qui parcourt un répertoire qui contient des fichiers zip. Avez-vous une idée ? Est-ce je dois utiliser un boucle for ? ou autre ?
Bonjour,
J' ai un projet en java pur : c'est un programme qui parcourt un répertoire qui contient des fichiers zip. Avez-vous une idée ? Est-ce je dois utiliser un boucle for ? ou autre ?
Salut,
Il y a plusieurs solutions pour parcourir un dossier :
- la méthode listFiles de la classe File permet de lister les fichiers et dossiers contenus dans un dossier. On peut mettre un filtre qui ne sélectionne que les fichiers que l'on désire (on peut tester leur type, leur nom, etc...).
Ensuite, avec un for en effet, ou un forEach (comme dans l'exemple qui suit), tu pourras parcourir les fichiers
Exemple, avec un filtre qui cherche les fichiers zip
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 File dossier = ... for(File file : dossier.listFiles(f-> f.isFile() && f.getName().endsWith(".zip"))) { System.out.print(file); }- La class DirectoryStream permet également de parcourir un dossier (avec une vrai gestion des erreurs) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try(DirectoryStream<Path> stream = Files.newDirectoryStream(dossier.toPath(), f-> Files.isRegularFile(f) && f.getFileName().toString().endsWith(".zip"))) { stream.forEach(file-> { System.out.print(file); }); } catch (IOException e) { e.printStackTrace(); }- un filewalker permet également de parcourir un dossier, mais récursivement en plus (en cherchant dans les sous-dossiers)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 try { Files.walkFileTree(dossier.toPath(), new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if ( file.getFileName().toString().endsWith(".zip") ) { System.out.println(file); } return super.visitFile(file, attrs); } }); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager