• 输入路径(包括盘符),打印层级目录(隐藏文件也会打印出来)


    学习笔记,记录一下

    import java.io.File;
    import java.util.Scanner;
    
    public class Test4 {
        /*
         * 打印一个文件夹下的所有文件和文件夹,需要打印出层级目录(隐藏文件也会打印出来)
         * @throws Exception 
         */
        public static void main(String[] args) throws Exception {
            File dir = getDir(); // 获取文件夹路径
            System.out.println(dir);
            printLevFile(dir, 1);
        }
    
        public static File getDir() {
            try (Scanner cin = new Scanner(System.in);) {
                System.out.println("请输入一个文件夹路径");
                while (true) {
                    String line = cin.nextLine();
                    File dir = new File(line);
                    if (!dir.exists()) {
                        System.out.println("不存在!重输:");
                    } else if (dir.isFile()) {
                        System.out.println("输入的不是文件夹,请重新输入:");
                    } else {
                        return dir;
                    }
                }
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            return null; 
        }
    
        /*
         * 打印层级目录 1.void 2.参数列表File dir
         */
        public static void printLevFile(File dir, int lev) throws Exception {
            File[] subFiles = dir.listFiles();
            if (subFiles != null) {// 路径仅仅只有盘符可能有dir为空的情况
                for (File subFile : subFiles) {
                    for (int i = 0; i < lev; ++i) {
                        System.out.print("-");
                    }
                    //Thread.sleep(500);
                    System.out.println(subFile);
                    if (subFile.isDirectory()) {
                        printLevFile(subFile, lev + 1);
                    }
                }
            } else {
                System.out.println("此时为空,注意查看!");
                Thread.sleep(10000); // 暂停10s查看
            }
        }
    }

    自己调试,暂停用延时,访问到-f:System Volume Information是会有java.lang.NullPointerException,所以用if和else判断,方便观察

    ========================================Talk is cheap, show me the code=======================================

    CSDN博客地址:https://blog.csdn.net/qq_34115899
  • 相关阅读:
    SpringMVC:拦截器拦截时机和原理
    SpringBoot:MessageConverter自动配置原理
    SpringMVC:返回值处理器原理和MessageConverter原理
    SpringMVC:自定义Converter
    XML-RPC协议学习
    ContentControl 与 ViewModel (一)
    C# 获取相对路径(绝对路径转相对路径)
    WPF 最简单的TextBox水印
    WPF/Silverlight开发的15个最佳实践(转发)
    WPF 打印崩溃问题( 异常:Illegal characters in path/路径中有非法字符)
  • 原文地址:https://www.cnblogs.com/lcy0515/p/10807940.html
Copyright © 2020-2023  润新知