• 递归查看文件目录下所有文件


     1 import java.io.File;
     2 
     3 public class 文件 {
     4 
     5     /**
     6      * 作用 主方法,程序的入口
     7      * 
     8      * @param args
     9      */
    10     public static void main(String[] args) {
    11         // TODO Auto-generated method stub
    12         getFileAll("E:/",0);
    13     }
    14 
    15     /**
    16      * 作用: 获取文件或目录名称
    17      * 
    18      * @param fileName
    19      *            文件路径
    20      * @return 文件名
    21      */
    22     public static String getFileName(String fileName) {
    23         File file = new File(fileName); // 创建文件对象
    24         return file.getName(); // 文件名
    25     }
    26 
    27     /**
    28      * 作用:获取文件权限
    29      * 
    30      * @param fileName
    31      *            文件路径
    32      * @return 文件权限
    33      */
    34     private static String getFileCan(String fileName) {
    35         File file = new File(fileName); // 创建文件对象
    36         return (file.canRead() ? "r" : "-") // 文件可读权限判断
    37                 + (file.canWrite() ? "w" : "-") // 文件可写权限判断
    38                 + (file.canExecute() ? "x" : "-"); // 文件可执行权限判断
    39     }
    40 
    41     /**
    42      * 作用: 获取文件大小
    43      * 
    44      * @param fileName
    45      *            文件路径
    46      * @return 返回文件大小
    47      */
    48     private static float getFileSzie(String fileName) {
    49         File file = new File(fileName); // 创建文件对象
    50         return file.length() / 1024F;// 返回文件大小
    51     }
    52 
    53     /**
    54      * @param fileName  文件路径
    55      * @param num 文件深度
    56      */
    57     private static void getFileAll(String fileName,int num) {
    58         File file = new File(fileName); // 创建文件对象
    59         
    60         //验证路径是否存在
    61         if (file.exists()) {//存在
    62             for (File File : file.listFiles()) {// 循环获取目录下文件
    63                 int newNum=num;//使同级文件深度相同
    64                 for (int i = 0; i <=newNum; i++) {
    65                     System.out.print("  ");//打印深度空格
    66                 }
    67                 // 判断是否为目录
    68                 String filePath=File.getAbsolutePath();
    69                                 
    70                 if (File.isDirectory()) {
    71                     System.out.println("目录名:"+File.getName()+"   权限:"+getFileCan(filePath));
    72                     newNum++;//递归次数+1
    73                     getFileAll(filePath,newNum);//getAbsolutePath() 获取文件路径
    74                     
    75                 }else {                
    76                     System.out.println("文件名:"+getFileName(filePath)+"   权限:"+getFileCan(filePath)+"  大小:"+getFileSzie(filePath)+"kb");                    
    77                 }
    78             }
    79         } else {
    80             System.out.println("找不到此目录!");
    81         }
    82     
    83     }
    84 }
  • 相关阅读:
    Visual Studio调试器指南---Disassembly窗口
    Visual Studio调试器指南---Register窗口
    Visual Studio调试器指南---Threads窗口
    关于System.Convert.ToInt16(float value)抛异常System.OverflowException---值对于 Int32 太大或太小的原因的探究
    关于System.OverflowException异常
    Visual Studio调试器指南---Memory 1-4窗口
    关于异常System.NullReferenceException
    关于C++标准异常之std::out_of_range
    VC调试器高级应用----高级断点篇
    Visual Studio调试器指南---CallStack窗口
  • 原文地址:https://www.cnblogs.com/sylwh/p/7220681.html
Copyright © 2020-2023  润新知