Java lê os caminhos de todas as pastas e arquivos abaixo. O conteúdo específico é o seguinte
Se na pasta f:/aa, existem pastas e arquivos como mostrado abaixo:
Então, em Java, todos os caminhos de arquivo sob f:/aa são lidos desta maneira:
1. Primeiro de tudo, como a Arraylist é usada nas classes de arquivos e contêineres, os pacotes a seguir devem ser introduzidos no início:
importar java.io.*; importar java.util.*;
2. O método é o seguinte, onde o Arquivo Dirfile pode aceitar todos os caminhos legais, exceto a letra de acionamento, como F:. Como a letra de unidade contém alguns arquivos do sistema, o acesso é negado, porque a letra de unidade é lida, uma exceção de ponteiro nulo pode ocorrer.
// Aqui, nós apenas perguntamos todas as pastas e arquivos no caminho atual e armazenamos seus caminhos para a matriz de arquivos //, pois encontramos uma pasta que não consulta que ela contém todas as subpastas e arquivos, não há necessidade de usar o recurso public static ArrayList <String> Dir (Arquivo Dirfile) lança a exceção {Arraylist <String> direto if (Dirfile.Exists ()) {// Vire diretamente, retire todas as pastas e arquivos no caminho atual usando listfiles () para armazenar todas as pastas e arquivos no caminho atual em um arquivo de arquivos arquivos de arquivos [] = dirFile.listfiles (); para (arquivo de arquivo: arquivos) {// Se o parâmetro passado Dirfile for encerrado com um separador de arquivos, ou seja, /ou /, construa -o assim se (Dirfile.getPath (). endswith (file.separator)) {dirstr.add (dirfile.getpath () + file.getName ()); } else {// Caso contrário, se não houver separador de arquivos, adicione um separador de arquivo e adicione o nome do arquivo ao caminho dirstrr.add (dirfile.getPath () + file.separator + file.getName ()); }} retorna dirstrr; } O método é não ler XLSX na pasta recém -criada em f:/aa. Se durante o processo de leitura, quando uma pasta quiser ler todas as subpastas e arquivos, a recursão é usada e uma matriz dinâmica global será definida primeiro:
public static ArrayList <String> DirallStrarr = new ArrayList <String> ();
Então o método é o seguinte:
public static void Dirall (Arquivo Dirfile) lança exceção {if (Dirfile.exists ()) {files files [] = DIRFILE.LISTFILES (); para (arquivo de arquivo: arquivos) {// Se uma pasta for encontrada, ela será chamada de recursivamente. if (file.isdirectory ()) {// ligue recursivamente no dirall (arquivo); } else {// Se você encontrar uma pasta, coloque -a na matriz if (Dirfile.getPath (). ENDSWITH (FILE.SEPARADOR)) {DIRALLTRARR.ADD (Dirfile.getPath () + file.getName ()); } else {DirallStarr.add (Dirfile.getPath () + file.separator + file.getName ()); }}}}}}}}}}}}}}}}}}}}}}} De fato, durante o processo de leitura, a chave é usar o método listfiles () para obter a lista de todos os arquivos nesta pasta. Em seguida, como "[Java] Mova pastas e todos os subfiles e subpastas" (clique para abrir o link) e "[Java] usa fluxos de entrada e saída de arquivos para concluir a operação de copiar todos os arquivos em uma pasta para outra pasta" (clique para abrir o link) e, em seguida, encontre as pastas que encontram recursivamente.
Todo o método acima é um arquivo java como este:
importar java.io.*; importar java.util.*; Classe public FILELIST {// Defina uma matriz dinâmica global para armazenar o caminho do arquivo // Ao percorrer pastas e contendo todas as subpastas e arquivos, a recursão é usada, para definir public static ArrayList <String> Dirallstr = new ArrayList <String> (); // Aqui está para consultar todas as pastas e arquivos no caminho atual e armazenar seus caminhos para a matriz de arquivos // Como a pasta não consulta que ela contém todas as subpastas e arquivos, não há necessidade de usar a recurso public static ArrayList <String> Dir (Arquivo Dirfile) lança Excepção {Arraylist <String> dirtrarr = newlist <strAylist <riveList> if (Dirfile.exists ()) {// Retire diretamente todas as pastas e arquivos no caminho atual usando listfiles () para armazenar todas as pastas e arquivos em um arquivo de arquivos arquivos de arquivos [] = Dirfile.listfiles (); para (arquivo de arquivo: arquivos) {// Se o parâmetro passado Dirfile for encerrado com um separador de arquivos, ou seja, / ou /, construa -o assim se (Dirfile.getPath (). endswith (file.separator)) {dirstr.add (dirfile.getpath () + file.getName ()); } else {// Caso contrário, se não houver separador de arquivos, adicione um separador de arquivo e adicione o nome do arquivo ao caminho dirstrr.add (dirfile.getPath () + file.separator + file.getName ()); }}} retorna dirstrr; } public static void Dirall (Arquivo Dirfile) lança Exceção {if (Dirfile.exists ()) {files files [] = Dirfile.ListFiles (); para (arquivo de arquivo: arquivos) {// Se uma pasta for encontrada, ela será chamada de recursivamente. if (file.isdirectory ()) {// ligue recursivamente no dirall (arquivo); } else {// Se uma pasta for encontrada, coloque -a em uma matriz if (Dirfile.getPath (). ENDSWITH (FILE.SEPARATOR)) {DirallStarr.add (Dirfile.getPath () + file.getName ()); } else {DirallStarr.add (Dirfile.getPath () + file.separator + file.getName ()); }}}} public static void main (string [] args) lança Exceção {file dirfile = new File ("f:/aa"); System.out.println (Dir (Dirfile)); Dirall (Dirfile); System.out.println (Dirallstr); }}Os resultados da operação são os seguintes:
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.