English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Come ottenere l'elenco di tutti i file e le directory da una cartella in Java?

classe di nomifiledijava.ioIl pacchetto rappresenta un file o una directory (nome del percorso) nel sistema. Questa classe fornisce vari metodi per eseguire diverse operazioni sui file/directory.

Per ottenere l'elenco di tutti i file esistenti nella directory, questa classe forniscelist()La classe files con variante fornisce (restituisce il nome) e ListFiles (restituisce l'oggetto File).

List()方法

Questo metodo restituisce un array di stringhe che contiene tutti i nomi dei file e delle directory contenuti nel percorso rappresentato dall'oggetto (file) corrente.

使用此方法,您可以仅打印文件和目录的名称。

Esempio

以下Java程序列出了路径D:\\ ExampleDirectory中所有文件和目录的名称。

import java.io.File;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      // Create a file object for the directory
      File directoryPath = new File("D:\\ExampleDirectory");
      //所有文件和目录的列表
      String contents[] = directoryPath.list();
      System.out.println("指定目录中的文件和目录列表:");
      for(int i=0; i<contents.length; i++) {
         System.out.println(contents[i]);
      }
   }
}

Risultato dell'output

指定目录中的文件和目录列表:
SampleDirectory1
SampleDirectory2
SampleFile1.txt
SampleFile2.txt
SapmleFile3.txt

ListFiles()方法

此方法返回一个数组,该数组保存当前(文件)对象表示的路径中所有文件(和目录)的对象(抽象路径)。

由于此方法返回文件夹中每个文件/目录的对象。使用它,您可以访问文件/目录的属性,例如大小,路径等。

Esempio

以下Java程序将打印路径D:\\ ExampleDirectory中所有文件的名称,路径和大小。

import java.io.File;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      // Create a file object for the directory
      File directoryPath = new File("D:\\ExampleDirectory");
      //所有文件和目录的列表
      File filesList[] = directoryPath.listFiles();
      System.out.println("指定目录中的文件和目录列表:");
      for(File file : filesList) {
         System.out.println("Nome del file: " + file.getName());
         System.out.println("Percorso del file: " + file.getAbsolutePath());
         System.out.println("Dimensione: " + file.getTotalSpace());
         System.out.println(" ");
      }
   }
}

Risultato dell'output

指定目录中的文件和目录列表:
File name: SampleDirectory1
File path: D:\ExampleDirectory\SampleDirectory1
Dimensione: 262538260480
File name: SampleDirectory2
File path: D:\ExampleDirectory\SampleDirectory2
Dimensione: 262538260480
Nome del file: SampleFile1.txt
Percorso del file: D:\ExampleDirectory\SampleFile1.txt
Dimensione: 262538260480
Nome del file: SampleFile2.txt
Percorso del file: D:\ExampleDirectory\SampleFile2.txt
Dimensione: 262538260480
Nome del file: SapmleFile3.txt
Percorso del file: D:\ExampleDirectory\SapmleFile3.txt
Dimensione: 262538260480

List(FilenameFilter filter)方法

如其签名所建议,此方法接受FilenameFilter对象,并返回一个String数组,其中包含当前(File)对象表示的路径中所有文件和目录的名称。但是重新调整后的数组包含基于指定过滤器过滤的文件名。

使用此方法,您可以获取特定文件夹中文件和目录的过滤名称。

Esempio

Il seguente programma Java si trova nel percorsoIn D:\\ ExampleDirectory打印文本文件的名称。

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      // Create a file object for the directory
      File directoryPath = new File("D:\\ExampleDirectory");
      FilenameFilter textFilefilter = new FilenameFilter() {
         public boolean accept(File dir, String name) {
            String lowercaseName = name.toLowerCase();
            if (lowercaseName.endsWith(".txt")) {
               return true;
            } else {
               return false;
            }
         }
      };
      //Elenco di tutti i file di testo
      String filesList[] = directoryPath.list(textFilefilter);
      System.out.println("Elenco dei file di testo nella directory specificata:");
      for(String fileName : filesList) {
         System.out.println(fileName);
      }
   }
}

Risultato dell'output

指定目录中的文本文件列表-

SampleFile1.txt
SampleFile2.txt
SapmleFile3.txt

Metodo ListFiles(FilenameFilter filter)

Questo metodo accetta un oggetto FilenameFilter e restituisce un array di File che contiene tutti gli oggetti file e directory rappresentati dal percorso corrente dell'oggetto File. Tuttavia, l'array aggiornato contiene file (oggetti) filtrati in base ai nomi dei file.

Utilizzando questo metodo, è possibile ottenere l'oggetto FileFilter filtrato per file e directory basandosi sui nomi dei file e delle directory.

Esempio

Il seguente programma Java si trova nel percorsoIn D:\\ ExampleDirectoryEcco un esempio di come stampare i nomi, i percorsi e le dimensioni di tutti i file di testo.

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      // Create a file object for the directory
      File directoryPath = new File("D:\\ExampleDirectory");
      FilenameFilter textFilefilter = new FilenameFilter() {
         public boolean accept(File dir, String name) {
            String lowercaseName = name.toLowerCase();
            if (lowercaseName.endsWith(".txt")) {
               return true;
            } else {
               return false;
            }
         }
      };
      //Elenco di tutti i file di testo
      File filesList[] = directoryPath.listFiles(textFilefilter);
      System.out.println("Elenco dei file di testo nella directory specificata:");
      for(File file : filesList) {
         System.out.println("Nome del file: " + file.getName());
         System.out.println("Percorso del file: " + file.getAbsolutePath());
         System.out.println("Dimensione: " + file.getTotalSpace());
         System.out.println(" ");
      }
   }
}

Risultato dell'output

Elenco dei file di testo nella directory specificata:
Nome del file: SampleFile1.txt
Percorso del file: D:\ExampleDirectory\SampleFile1.txt
Dimensione: 262538260480
Nome del file: SampleFile2.txt
Percorso del file: D:\ExampleDirectory\SampleFile2.txt
Dimensione: 262538260480
Nome del file: SapmleFile3.txt
Percorso del file: D:\ExampleDirectory\SapmleFile3.txt
Dimensione: 262538260480

Metodo ListFiles(FileFilter filter)

Questo metodo accetta un oggetto FileFilter e restituisce un array di File che contiene tutti i file e le directory rappresentati dal percorso corrente dell'oggetto File. Tuttavia, l'array aggiornato contiene file (oggetti) filtrati in base alle proprietà dei file.

Utilizzando questo metodo, è possibile ottenere l'oggetto FileFilter filtrato per file e directory specifici in una cartella, basandosi su dimensioni, percorso, tipo (file o directory) e altri.

Esempio

Il seguente programma Java si trova nel percorsoIn D:\\ ExampleDirectoryEcco un esempio di come stampare i nomi, i percorsi e le dimensioni di tutti i file (non le cartelle).

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
public class ListOfFiles {
   public static void main(String args[]) throws IOException {
      // Create a file object for the directory
      File directoryPath = new File("D:\\ExampleDirectory");
      FileFilter textFilefilter = new FileFilter() {
         public boolean accept(File file) {
            boolean isFile = file.isFile();
            if (isFile) {
               return true;
            } else {
               return false;
            }
         }
      };
      //Elenco di tutti i file di testo
      File filesList[] = directoryPath.listFiles(textFilefilter);
      System.out.println("Elenco dei file di testo nella directory specificata:");
      for(File file : filesList) {
         System.out.println("Nome del file: " + file.getName());
         System.out.println("Percorso del file: " + file.getAbsolutePath());
         System.out.println("Dimensione: " + file.getTotalSpace());
         System.out.println(" ");
      }
   }
}

Risultato dell'output

Elenco dei file di testo nella directory specificata:
Nome del file: cassandra_logo.jpg
Percorso del file: D:\ExampleDirectory\cassandra_logo.jpg
Dimensione: 262538260480
Nome del file: cat.jpg
Percorso del file: D:\ExampleDirectory\cat.jpg
Dimensione: 262538260480
Nome del file: coffeescript_logo.jpg
Percorso del file: D:\ExampleDirectory\coffeescript_logo.jpg
Dimensione: 262538260480
Nome del file: javafx_logo.jpg
Percorso del file: D:\ExampleDirectory\javafx_logo.jpg
Dimensione: 262538260480
Nome del file: SampleFile1.txt
Percorso del file: D:\ExampleDirectory\SampleFile1.txt
Dimensione: 262538260480
Nome del file: SampleFile2.txt
Percorso del file: D:\ExampleDirectory\SampleFile2.txt
Dimensione: 262538260480
Nome del file: SapmleFile3.txt
Percorso del file: D:\ExampleDirectory\SapmleFile3.txt
Dimensione: 262538260480