Maison  >  Article  >  Java  >  Java implémente la réception des chemins de fichiers à partir du clavier et l'impression hiérarchique des noms de fichiers ou de dossiers

Java implémente la réception des chemins de fichiers à partir du clavier et l'impression hiérarchique des noms de fichiers ou de dossiers

王林
王林avant
2019-11-30 13:50:413674parcourir

Java implémente la réception des chemins de fichiers à partir du clavier et l'impression hiérarchique des noms de fichiers ou de dossiers

1. Effet d'implémentation

Exigences : Recevez un chemin de dossier à partir du clavier et imprimez tous les fichiers et noms de dossiers du dossier de manière hiérarchique.

Par exemple : Imprimez tous les fichiers du dossier et les noms des dossiers de manière hiérarchique.

2. Implémenter la logique

Obtenez tous les fichiers et dossiers, renvoyez le tableau File et parcourez le tableau. Qu'il s'agisse d'un fichier ou d'un dossier, il doit être imprimé directement. est un dossier, appelez-le de manière récursive.

Partage de didacticiels vidéo associés : cours Java

3. Le code d'implémentation

aaa est un dossier qui contient bbb.txt, ccc.txt, Les fichiers tels que ddd.txt contiennent des dossiers tels que eee. Il y a fff.txt et ggg.txt dans eee, et les niveaux sont imprimés.

Par exemple :

Java implémente la réception des chemins de fichiers à partir du clavier et limpression hiérarchique des noms de fichiers ou de dossiers

Le code est le suivant :

public class Test4 {
    public static void main(String[] args) {
 
        File dir = getDir();                //获取文件夹路径
 
        printLev(dir,0);
 
    }
 
    /*
     * 从键盘接收一个文件夹路径
     * 1,返回值类型File
     * 2,参数列表无
     */
 
    public static File getDir() {
 
        //1,创建键盘录入对象
 
        Scanner sc = new Scanner(System.in);
 
        System.out.println("请输入一个文件夹路径:");
 
        //2,定义一个无限循环
 
        while(true) {
 
            //3,将键盘录入的结果存储并封装成File对象
 
            String line = sc.nextLine();
 
            File dir = new File(line);
 
            //4,对File对象判断
 
            if(!dir.exists()) {
 
                System.out.println("您录入的文件夹路径不存在,请输入一个文件夹路径:");
 
            }else if(dir.isFile()) {
 
                System.out.println("您录入的是文件路径,请输入一个文件夹路径:");
 
            }else {
 
                //5,将文件夹路径对象返回
 
                return dir;
 
            }
 
        }
    }

    public static void printLev(File dir,int lev) {
 
        //1,把文件夹中的所有文件以及文件夹的名字按层级打印
 
        File[] subFiles = dir.listFiles();
 
        //2,遍历数组
 
        for (File subFile : subFiles) {
 
            for(int i = 0; i <= lev; i++) {
 
                System.out.print("\t");
 
            }
 
            //3,无论是文件还是文件夹,都需要直接打印
 
            System.out.println(subFile);
 
            //4,如果是文件夹,递归调用
 
            if(subFile.isDirectory()) {
 
                //printLev(subFile,lev + 1);
 
                printLev(subFile,++lev);
 
            }
 
        }
 
    }
 
}

Pour plus de didacticiels d'articles connexes, veuillez visiter : Introduction au langage Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer