1. 효과를 얻으려면
요구 사항: 키보드에서 폴더 경로를 수신하고 폴더의 모든 파일과 폴더 이름을 계층적으로 인쇄합니다.
예: 폴더의 모든 파일과 폴더 이름을 계층적으로 인쇄합니다.
2. 로직 구현
모든 파일과 폴더를 가져와 파일 배열을 반환하고 배열을 순회합니다. 파일이든 폴더이든 직접 인쇄해야 합니다.
관련 영상 튜토리얼 공유 : java 강좌
3. 구현 코드
aaa는 bbb.txt, ccc.txt, ddd.txt 등의 파일이 들어있는 폴더이고, 거기에 fff.txt 및 ggg.txt이며 레벨을 인쇄합니다.
예:
코드는 다음과 같습니다.
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); } } } }
더 많은 관련 기사 튜토리얼을 보려면 다음을 방문하세요. Java 언어 시작하기
위 내용은 Java는 키보드에서 파일 경로를 수신하고 파일 또는 폴더 이름을 계층적으로 인쇄하는 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!