JAVA输出指定目录下的子目录和子文件

题目:给定一个目录,要求输出这个目录下面的子目录和子文件

  逻辑:

  •   先判断给定的是不是一个合法的目录,如果不是,则提示给定错误
  •   如果是目录,那么使用File.listFile()获得这个目录下文件名的数组
  •   循环遍历输出这个数组元素
  •   输出名称之后,接着判断这个元素是文件还是目录
  •   如果是目录,继续调用本方法来输出子目录

代码如下:

/**
 * 输出指定目录下的所有子目录和子文件
 *
 * @author DXY
 *
 */
public class HelloFile {
    public static void main(String[] args) {
        printFile(new File("D:\\test"));

    }

    public static void printFile(File file) {
        if (file.isFile()) {
            System.out.println("您给定的是一个文件"); // 判断给定目录是否是一个合法的目录,如果不是,输出提示
        } else {
            File[] fileLists = file.listFiles(); // 如果是目录,获取该目录下的内容集合

            for (int i = 0; i < fileLists.length; i++) { // 循环遍历这个集合内容
                System.out.println(fileLists[i].getName());    //输出元素名称
                if (fileLists[i].isDirectory()) {    //判断元素是不是一个目录
                    printFile(fileLists[i]);    //如果是目录,继续调用本方法来输出其子目录
                }
            }
        }
    }
}

执行成功,结果正确,但是样子太丑陋了,如图

我们还需要加上缩进改造一下

public class HelloFile {
    public static void main(String[] args) {
        printFile(new File("D:\\test"),1);
    }

    public static void printFile(File file,int tab) {
        if (file.isFile()) {
            System.out.println("您给定的是一个文件"); // 判断给定目录是否是一个合法的目录,如果不是,输出提示
        } else {
            File[] fileLists = file.listFiles(); // 如果是目录,获取该目录下的内容集合

            for (int i = 0; i < fileLists.length; i++) { // 循环遍历这个集合内容
                for (int j = 0; j < tab; j++) {        //输出缩进
                    System.out.print("|---");
                }                

                System.out.println(fileLists[i].getName());    //输出元素名称                

                if (fileLists[i].isDirectory()) {    //判断元素是不是一个目录
                    printFile(fileLists[i],tab+1);    //如果是目录,继续调用本方法来输出其子目录,因为是其子目录,所以缩进次数 + 1
                }
            }
        }
    }
}

结果为:

时间: 2024-10-03 20:46:34

JAVA输出指定目录下的子目录和子文件的相关文章

33.2 案例:输出指定目录下的所有java文件名(包含子目录)

package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static void main(String[] args) { File f = new File("src"); method(f); } //输出指定目录下的所有java文件名 private static void method(File f) { if(f.isDirectory()) {

Python扫描指定目录下(包括子目录)的文件

扫描指定目录下的文件,或者匹配指定后缀和前缀的函数. 如果要扫描指定目录下的文件,包括子目录,调用scan_files("/export/home/test/") 如果要扫描指定目录下的特定后缀的文件(比如jar包),包括子目录,调用scan_files("/export/home/test/", postfix=".jar") 如果要扫描指定目录下的特定前缀的文件(比如test_xxx.py),包括子目录,调用scan_files("

Java 读取指定目录下的文件名和目录名

需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { /* * 读取指定路径下的文件名和目录名 */ public void getFileList() { File file = new File("D:\\"); File[] fileList = file.listFiles(); for (int i = 0; i < file

Java读取指定目录下的所有文件(子目录里的文件也可递归得到)

1 import java.io.File; 2 3 public class ReadFile { 4 5 public static void main(String[] args) { 6 7 // path是指定目录的绝对路径 8 String path = "/Users/tonychan/Workspaces/MyEclipse 2017 CI/Zhangjiajie/WebRoot/pics"; 9 getFile(path); 10 11 } 12 13 // 给定目录

Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例

1. 案例: 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名. 2. 案例代码如下: (1)思路是:先获取所有的文件和文件夹封装的对象,然后遍历的时候,依次判断,如果满足条件就输出. 1 package com.himi.filesdemo; 2 3 import java.io.File; 4 5 6 /** 7 * 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名 8 * @author hebao 9 * 10 */ 11 public class

用JAVA查找指定目录下包含关键字的文件

最近要改一个产品到MYSQL数据库,源代码是遗留下来的,里面有很多反编译的文件,并且带有错误.因此想要删掉这些反编译文件,避免干扰.好在这些文件内容里都带有反编译器的信息.通过关键字在ECLIPSE下搜索发现了500+个文件,无奈只好想办法批量删除.首先想到用脚本语言(bat),网上找了一遍,没有合适的,最后决定用JAVA实现. 1 public static String[] findFiles(String baseURL,String... contains){ 2 File baseDI

查询指定目录下所有子目录的大小

1 [[email protected] ~]# cat x.sh 2 #!/bin/bash 3 4 fun_x () { 5 6 du -h $1 |tail -1 7 8 } 9 10 for i in `ls $1` 11 do 12 fun_x $1$i 13 done 14 [[email protected] ~]# sh x.sh /usr/ 15 132M /usr/bin 16 4.0K /usr/etc 17 4.0K /usr/games 18 34M /usr/incl

shell练习-对指定目录下的符合条件的文件执行操作

编写个shell脚本将当前目录下大于10K的文件,然后删除 #!/bin/bash #author: liqilong #date: 2016-08-26 #Decs: find the file (if they more than 10K)and remove them . for Filename in `ls -l|awk '$5 > 10240 {print $9}'` do rm -rf $Filename done echo "OK!"

遍历指定文件夹下的所有图片,并复制到指定目录下

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class Copy { /** * 遍历文件夹下的所有图片文件,并复制到指定文件夹下 */ static String srcfile = "E:/I