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 :
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!