annuaire Java: liste de fichiers dans un répertoire

Introduction

De nombreuses applications gĂ©rent des fichiers d’une maniĂšre et d’une autre manipulation est l’une des tĂąches de base Connaissances dans tout langage de programmation.

manipuler des fichiers, nous devons savoir oĂč ils se trouvent. Avoir une description gĂ©nĂ©rale des fichiers d’un rĂ©pertoire est primordial si nous voulons y parvenir, surtout si nous pouvons effectuer des opĂ©rations dans une itĂ©ration. Il y a plusieurs façons de le faire en Java, que nous montrerons tout au long de cet article.

Pour la simplicitĂ©, tous les exemples seront Ă©crits pour l’arborescence de fichier suivant:

Programming|-- minimax.c|-- super_hack.py|-- TODO.txt`-- CodingMusic |-- Girl Talk - All Day.mp3 |-- Celldweller - Frozen.mp3 |-- Lim Taylor - Isn't It Wonderful.mp3 `-- Radiohead - Everything in Its Right Place.mp3

fichier.list ()

La méthode la plus simple permettant de répertorier les noms de fichiers et les dossiers dans un répertoire donné, sans passer par les sous-répertoires, est la méthode auxiliaire. .list(), qui renvoie une matrice de String s.

Nous faisons cela Ă  l’aide de .list() mĂ©thode dans un File Exemple:

Utilisation d’une boucle simple , humide Ă  travers la matrice et imprimez le String s.

CodingMusicminimax.csuper_hack.pyTODO.txt

avec cette approche, tous les Ă©lĂ©ments de la CodingMusic ne sont pas affichĂ©s et un inconvĂ©nient de cette approche est que nous ne pouvons pas vraiment faire quoi que ce soit avec les fichiers lui-mĂȘme. Nous n’obtenons que leurs noms. Il est utile lorsque nous voulons seulement examiner les fichiers au bas de la lettre.

FilenamFilter

Une autre chose que nous pouvons faire avec le .list() La méthode consiste à créer un FilenameFilter pour renvoyer uniquement les fichiers que nous souhaitons:

File f = new File("D:/Programming");// This filter will only include files ending with .pyFilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File f, String name) { return name.endsWith(".py"); } };// This is how to apply the filterpathnames = f.list(filter);

Exécutez ce fragment de code, il produirait:

fichier.listfiles ()

similaire Ă  la mĂ©thode prĂ©cĂ©dente, cela peut ĂȘtre utilisĂ©. Pour revenir les noms de fichiers et les rĂ©pertoires, mais cette fois, nous les obtenons comme une matrice de File objets, ce qui nous donne la possibilitĂ© de les manipuler directement:

public class Pathnames { public static void main(String args) { // try-catch block to handle exceptions try { File f = new File("D:/Programming"); FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File f, String name) { // We want to find only .c files return name.endsWith(".c"); } }; // Note that this time we are using a File class as an array, // instead of String File files = f.listFiles(filter); // Get the names of the files by using the .getName() method for (int i = 0; i < files.length; i++) { System.out.println(files.getName()); } } catch (Exception e) { System.err.println(e.getMessage()); } }}

sortie:

minimax.c

Maintenant, passons dans le systĂšme de fichiers Ă  l’aide de la rĂ©cursivitĂ© et d’autres mĂ©thodes Ă  utiliser dans le File Object:

sortie:

Girl Talk - All Day.mp3 (size in bytes: 8017524)Celldweller - Frozen.mp3 (size in bytes: 12651325)Lim Taylor - Isn't It Wonderful.mp3 (size in bytes: 6352489)Radiohead - Everything in Its Right Place.mp3 (size in bytes: 170876098)minimax.c (size in bytes: 20662)super_hack.py (size in bytes: 114401)TODO.txt (size in bytes: 998)

fichiers.walk ()

en Java 8 et prĂ©sentation constrons-nous utiliser la classe ID = « 7bc9e87bbb »> la classe pour remplir un Stream et utilisez-le pour voyager des fichiers et des rĂ©pertoires, en mĂȘme temps via les sous-rĂ©pertoires rĂ©cursives .

Veuillez noter que dans cet exemple, nous utiliserons des expressions Lambda:

public class FilesWalk { public static void main(String args) { try (Stream<Path> walk = Files.walk(Paths.get("D:/Programming"))) { // We want to find only regular files List<String> result = walk.filter(Files::isRegularFile) .map(x -> x.toString()).collect(Collectors.toList()); result.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } }}

ici, nous avons peuplĂ© un Stream Ă  l’aide de mĂ©thode, passant un Paths Argument. Le Paths La classe consiste en des mĂ©thodes statiques qui renvoient une Path en fonction d’une chaĂźne URI et d’utiliser un Path, nous pouvons localiser le fichier facilement.

the Path, Paths, = « 3CE2D2CC9C »> , et de nombreuses autres classes appartiennent Ă  l’emballage java.nio, qui a Ă©tĂ© introduit dans Java 7 comme moyen plus moderne de reprĂ©senter des fichiers sans blocage.

Ensuite, Ă  l’aide du cadre de collecte, une liste est gĂ©nĂ©rĂ©e.

Exécuter ce fragment de code produira:

CONCLUSION

Gestion de fichiers est une tĂąche centrale pour la plupart des langages de programmation, ce qui inclut la possibilitĂ© de rĂ©pertorier et de trouver des fichiers dans le systĂšme de fichiers. Pour manipuler des fichiers, nous devons savoir oĂč ils se trouvent. Avoir une description gĂ©nĂ©rale des fichiers d’un rĂ©pertoire est primordiale si nous voulons y parvenir, surtout si nous pouvons effectuer des opĂ©rations sur eux via l’itĂ©ration.

Dans cet article, nous montrons diffĂ©rentes maniĂšres de Java pour rĂ©pertorier les archives Dans le systĂšme de fichiers, Ă  l’aide d’approches linĂ©aires et rĂ©cursives.

« 2d831a01ed »>

« 2d831a01ed »>

« 2D831a01ed »>

« 2d831a01ed »>

Évaluez ce message

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *