📜  显示目录中所有目录的Java程序

📅  最后修改于: 2022-05-13 01:55:38.830000             🧑  作者: Mango

显示目录中所有目录的Java程序

目录是计算机文件系统的组织结构,它不仅负责存储文件,还负责在内存中定位文件。文件组织结构是一种涉及父子关系的层次结构,就像树数据结构中的那样。它会因操作系统而异,而操作系统的效率是通过最终用户的文件组织结构的难易程度来衡量的。

Java中的以下类用于列出目录内容

  • Java.nio.file.Files
  • org.apache.commons.io.FileUtils
  • Java文件

Directory的层次结构

先决条件:文件和目录命令

  1. 用于编译机器上任何Java代码的终端命令
  2. 用于在机器上运行任何Java代码的终端命令
javac class_name.java // For Compilation
java class_name       // For Execution     
ActionCommand
To navigate into the root directorycd /
To navigate to your home directorycd
To navigate up one directory levelcd ..
To navigate to the previous directorycd –
To lookup for files inside the current instance directoryls

方法:在Java中访问目录有两种标准方法。方法讨论如下:

  • 方法 1:使用 listFiles() 方法
  • 方法二:使用蛮力攻击

方法一: listFiles() 方法将所有文件存储在一个数组中,以打印当前文件夹中存在的所有文件。

这是相同的实现。

Java
// Java Program to Display all directories in a directory
  
// Importing Classes/Files
import java.io.*;
// Importing  specific File Class for directory access
import java.io.File;
  
class GFG {
    // Main Driver code
    public static void main(String[] args)
    {
        // Creating object of class File where
        // Dot represents the current directory
        File currentDir = new File(".");
        displayDirectory(currentDir);
    }
  
    // Function displaying all the directories
    // present in the directory
    public static void displayDirectory(File dir)
    {
  
        try {
            File[] files = dir.listFiles();
  
            // For-each loop for iteration
            for (File file : files) {
  
                // Checking of file inside directory
                if (file.isDirectory()) {
  
                    // Display directories inside directory
                    System.out.println(
                        "directory:"
                        + file.getCanonicalPath());
                    displayDirectory(file);
                }
  
              // Simpley get the path
                else {
                    System.out.println(
                        "     file:"
                        + file.getCanonicalPath());
                }
            }
        }
  
        // if any exceptions occurs printStackTrace
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}


Java
// Java Program to Display all directories in a directory
  
// Importing Classes/Files
import java.io.*;
  
public class GFG {
  
    // Driver main method
    public static void main(String[] args)
    {
        /*For windos user write path in below formate-:
              ("F:\\folder name \\ subfolder")
           */
  
        // Creating new instance of File
        File file = new File("/Desktop");
  
        // returns an array of all files
        String[] fileList = file.list();
  
        for (String str : fileList) {
            System.out.println(str);
        }
    }
}


输出:终端 显示目录中的所有目录

方法2:现在,这里只考虑暴力攻击,即访问给定目录并简单地打印指定文件夹中存在的目录/文件。这是相同的实现。

Java

// Java Program to Display all directories in a directory
  
// Importing Classes/Files
import java.io.*;
  
public class GFG {
  
    // Driver main method
    public static void main(String[] args)
    {
        /*For windos user write path in below formate-:
              ("F:\\folder name \\ subfolder")
           */
  
        // Creating new instance of File
        File file = new File("/Desktop");
  
        // returns an array of all files
        String[] fileList = file.list();
  
        for (String str : fileList) {
            System.out.println(str);
        }
    }
}

输出:

此代码通过网络卷访问。

注意:在上面的例子中,我们写了 Linux 用户的路径。对于 Windows 用户,您必须在指定路径时使用双反斜杠。这是因为 \字符在Java中用作转义字符。因此,第一个反斜杠用作第二个反斜杠的转义字符。