Java lit les chemins de tous les dossiers et fichiers ci-dessous. Le contenu spécifique est le suivant
Si dans le dossier F: / AA, il y a des dossiers et des fichiers comme indiqué ci-dessous:
Ensuite, en Java, tous les chemins de fichier sous f: / aa sont lus de cette manière:
1. Tout d'abord, car ArrayList est utilisé sous les classes de fichiers et de conteneurs, les packages suivants doivent être introduits au début:
importer java.io. *; import java.util. *;
2. La méthode est la suivante, où le fichier dirfile peut accepter tous les chemins juridiques à l'exception de la lettre de lecteur, telle que f:. Étant donné que la lettre de lecteur contient certains fichiers système, l'accès est refusé, car la lettre de lecteur est lue, une exception de pointeur nul peut se produire.
// Ici, nous interrogeons uniquement tous les dossiers et fichiers dans le chemin actuel et stockons leurs chemins vers le tableau de fichiers // Puisque nous rencontrons un dossier qui ne le demande pas contient tous les sous-dossiers et fichiers, il n'est pas nécessaire d'utiliser une exception récursive publique statique Array <string> dir (file dirfile) lance l'exception; ArrayList <string> dirStrarr = new ArrayList <string> ();); if (dirfile.exists ()) {// Tournez directement supprimer tous les dossiers et fichiers dans le chemin actuel à l'aide de ListFiles () pour stocker tous les dossiers et fichiers dans le chemin actuel dans un fichier de fichiers de fichiers de fichiers [] = dirfile.listFiles (); pour (fichier file: fichiers) {// Si le paramètre passé DirFile est terminé avec un séparateur de fichiers, c'est-à-dire, / ou /, alors construisez-le comme celui-ci si (dirFile.getPath (). Endswith (file.separator)) {dirstrarr.add (dirfile.getPath () + file.getName ()); } else {// Sinon, s'il n'y a pas de séparateur de fichiers, ajoutez un séparateur de fichiers et ajoutez le nom de fichier au chemin dirstrarr.add (dirfile.getpath () + file.separator + file.getName ()); }} return dirstrarr; } La méthode est de ne pas lire xlsx dans le dossier nouvellement créé sous f: / aa. Si pendant le processus de lecture, lorsqu'un dossier souhaite lire tous les sous-dossiers et fichiers, la récursivité est utilisée et un tableau dynamique global est défini en premier:
public static arrayList <string> dirallstrarr = new ArrayList <string> ();
Ensuite, la méthode est la suivante:
public static void dirall (fichier dirfile) lève une exception {if (dirfile.exists ()) {fichiers de fichiers [] = dirfile.listfiles (); pour (fichier de fichier: fichiers) {// Si un dossier est rencontré, il sera appelé récursivement. if (file.isDirectory ()) {// appelez récursivement dirall (fichier); } else {// Si vous rencontrez un dossier, mettez-le dans le tableau if (dirfile.getPath (). Endswith (file.separator)) {dirallstrarr.add (dirfile.getPath () + file.getName ()); } else {dirallstrarr.add (dirfile.getPath () + file.separator + file.getName ()); }}}}}}}}}}}}}}}}}}}}}} En fait, pendant le processus de lecture, la clé consiste à utiliser la méthode ListFiles () pour obtenir la liste de tous les fichiers de ce dossier. Ensuite, comme "[Java] Déplacer les dossiers et tous les sous-fichiers et sous-dossiers" (cliquez pour ouvrir le lien) et "[Java] utilise des flux d'entrée de fichiers et de sortie pour terminer le fonctionnement de la copie de tous les fichiers dans un dossier dans un autre dossier" (cliquez pour ouvrir le lien), puis en rencontre récursive des dossiers.
La méthode entière ci-dessus est un fichier Java comme ceci:
importer java.io. *; import java.util. *; classe publique FileList {// Définissez un tableau global dynamique pour stocker le chemin de fichier // lors de la traversée des dossiers et contenant tous les sous-dossiers et fichiers, la récursivité est utilisée, vous devez donc définir public static arrayList <string> dirallstrarr = new ArrayList <string> (); // voici pour interroger tous les dossiers et fichiers sous le chemin d'accès actuel et stocker leurs chemins vers le tableau de fichiers // Étant donné que le dossier ne le demande pas, il contient tous les sous-dossiers et fichiers, il n'est pas nécessaire d'utiliser Recursion Public Static ArrayList <string> dir (file dirfile) lance l'exception; ArrayList <string> dirStrarR = new ArrayList <Ratt> (); if (dirfile.exists ()) {// supprimez directement tous les dossiers et fichiers dans le chemin actuel à l'aide de ListFiles () pour stocker tous les dossiers et fichiers dans un fichier de fichiers de fichiers [] = dirfile.listFiles (); pour (fichier file: fichiers) {// Si le paramètre passé DirFile est terminé avec un séparateur de fichiers, c'est-à-dire, / ou /, alors construisez-le comme celui-ci si (dirFile.getPath (). Endswith (file.separator)) {dirstrarr.add (dirfile.getPath () + file.getName ()); } else {// Sinon, s'il n'y a pas de séparateur de fichiers, ajoutez un séparateur de fichiers et ajoutez le nom de fichier au chemin dirstrarr.add (dirfile.getpath () + file.separator + file.getName ()); }}} return dirstrarr; } public static void dirall (fichier dirfile) lève une exception {if (dirfile.exists ()) {fichiers de fichiers [] = dirfile.listfiles (); pour (fichier de fichier: fichiers) {// Si un dossier est rencontré, il sera appelé récursivement. if (file.isDirectory ()) {// appelez récursivement dirall (fichier); } else {// Si un dossier est rencontré, mettez-le dans un tableau if (dirfile.getPath (). Endswith (file.separator)) {dirallstrarr.add (dirfile.getPath () + file.getName ()); } else {dirallstrarr.add (dirfile.getPath () + file.separator + file.getName ()); }}}} public static void main (String [] args) lève une exception {file dirfile = new File ("f: / aa"); System.out.println (dir (dirfile)); Dirall (dirfile); System.out.println (Dirallstrarr); }}Les résultats de l'opération sont les suivants:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.