Java lee las rutas de todas las carpetas y archivos a continuación. El contenido específico es el siguiente
Si en la carpeta F:/AA, hay carpetas y archivos como se muestra a continuación:
Luego, en Java, todas las rutas de archivo en F:/AA se leen de esta manera:
1. En primer lugar, dado que ArrayList se usa en las clases de archivo y contenedores, los siguientes paquetes deben introducirse al principio:
import java.io.*; import java.util.*;
2. El método es el siguiente, donde el archivo de directorio de archivo puede aceptar todas las rutas legales, excepto la carta de la unidad, como F:. Debido a que la letra de la unidad contiene algunos archivos del sistema, se niega el acceso, debido a que se lee la letra de la unidad, puede ocurrir una excepción de puntero nulo.
// Aquí solo consultamos todas las carpetas y archivos en la ruta actual y almacenamos sus rutas en la matriz de archivos // Dado que encontramos una carpeta que no consulta que contenga todas las subcarpetas y archivos, no es necesario usar la ArrayList Public Static recursiva <String> Dir (Archivo Dirfile) Excepción {ArrayList <RARAYLIST <String> Dirstrarr = New ArrayList <String> (); if (dirfile.exists ()) {// gire directamente saque todas las carpetas y archivos en la ruta actual usando listFiles () para almacenar todas las carpetas y archivos en la ruta actual en los archivos de archivos de matriz de archivos [] = dirfile.listFiles (); para (archivo de archivo: archivos) {// Si el dirfile directo del parámetro aprobado se termina con un separador de archivo, es decir, /o /, luego construya así if (dirfile.getPath (). endswith (file.separator)) {dirstrarr.add (dirfile.getPath () + file.getName ()); } else {// de lo contrario, si no hay separador de archivos, agregue un separador de archivo y agregue el nombre del archivo a la ruta dirstrarr.add (dirfile.getpath () + file.separator + file.getName ()); }} return dirstrarr; } El método es no leer XLSX en la carpeta recién creada en F:/AA. Si durante el proceso de lectura, cuando una carpeta quiere leer todas las subcarpetas y archivos, se utiliza la recursión y primero se establece una matriz dinámica global: primero:
Public Static ArrayList <String> dirallSrarr = new ArrayList <String> ();
Entonces el método es el siguiente:
public static void dirall (file dirfile) lanza la excepción {if (dirfile.exists ()) {file file [] = dirfile.listFiles (); para (archivo de archivo: archivos) {// Si se encuentra una carpeta, se llamará recursivamente. if (file.isDirectory ()) {// recursivamente llame a dirall (archivo); } else {// Si encuentra una carpeta, colóquela en la matriz if (dirfile.getPath (). Endswith (file.separator)) {dirallStrarr.add (dirfile.getPath () + file.getName ()); } else {dirallStrarr.add (dirfile.getPath () + file.separator + file.getName ()); }}}}}}}}}}}}}}}}}}}}}} De hecho, durante el proceso de lectura, la clave es usar el método ListFiles () para obtener la lista de todos los archivos en esta carpeta. Luego, como "[Java] mueve las carpetas y todos los subfiles y subcarpetas" (haga clic para abrir el enlace) y "[Java] usa transmisiones de entrada y salida para completar la operación de copiar todos los archivos en una carpeta a otra carpeta" (haga clic para abrir el enlace), y luego en las carpetas de encuentro recursivamente.
Todo el método anterior es un archivo Java como este:
import java.io.*; import java.util.*; Public Class Filelist {// Establecer una matriz dinámica global para almacenar la ruta del archivo // Al atravesar carpetas y contener todas las subcarpetas y archivos, se utiliza la recursión, por lo que debe establecer pública Static ArrayList <String> dirallStrarr = new ArrayList <String> (); // aquí es consultar todas las carpetas y archivos en la ruta actual y almacenar sus rutas en la matriz de archivos // Dado que la carpeta no consulta, contiene todas las subcarpetas y archivos, no es necesario usar recursión public static arrayList <String> Dir (archivo dirfile) Excepción {arrayList <string> dirstrarr = new arrayList <tring> ();; if (dirfile.exists ()) {// saque directamente todas las carpetas y archivos en la ruta actual usando listFiles () para almacenar todas las carpetas y archivos en los archivos de archivos de archivo [] = dirfile.listFiles (); para (archivo de archivo: archivos) {// Si el dirfile directo del parámetro aprobado se termina con un separador de archivo, es decir, / o /, luego construya así if (dirfile.getPath (). endswith (file.separator)) {dirstrarr.add (dirfile.getPath () + file.getName ()); } else {// de lo contrario, si no hay separador de archivos, agregue un separador de archivo y agregue el nombre del archivo a la ruta dirstrarr.add (dirfile.getpath () + file.separator + file.getName ()); }}} return dirstrarr; } public static void dirall (archivo dirfile) lanza la excepción {if (dirfile.exists ()) {file file [] = dirfile.listFiles (); para (archivo de archivo: archivos) {// Si se encuentra una carpeta, se llamará recursivamente. if (file.isDirectory ()) {// recursivamente llame a dirall (archivo); } else {// Si se encuentra una carpeta, póngala en una matriz 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) lanza la excepción {archivo dirfile = nuevo archivo ("f:/aa"); System.out.println (dir (dirfile)); Diralia (dirfile de dirección); System.out.println (dirallStrarr); }}Los resultados de la operación son los siguientes:
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.