zoukankan      html  css  js  c++  java
  • 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件

    当初在开始接触Java时  学习File部分的一个小练习  挺有意思

    一开始是通过看 北京圣思园 张龙老师的视频开始学校java的,必须强烈推荐,真很棒。

    功能实现:主要实现以树形方式展现出该目录中的所有子目录和文件。 另外, 在展现的时候将目录排在上面,文件排在下面。每一层要加上缩进。 文件是jre6文件夹,我想这文件夹就不用我说什么了。换上自己的文件路径就可以了。

    [java] view plain copy
     
    1. import java.io.File;  
    2.   
    3. public class FileTest2  
    4. {  
    5.       
    6. public static int count = 0;  
    7. public static void parse(File[] files)  
    8. {  
    9.     if(files.length == 0)  
    10.     {  
    11.         FileTest2.count--;  
    12.         System.out.println();  
    13.         return;  
    14.     }  
    15.     else  
    16.     {  
    17.         for(File f : files)  
    18.         {  
    19.             if(f.isDirectory())  
    20.             {  
    21.                 FileTest2.count++;  
    22.                 for(int i = 1; i <= FileTest2.count; i++)  
    23.                 {  
    24.                     System.out.print(" ");  
    25.                 }  
    26.    
    27.                 System.out.println(f.getName());  
    28.                 File[] files2 = f.listFiles();  
    29.    
    30.                 FileTest2.parse(files2);  
    31.             }  
    32.    
    33.         }  
    34.         for(File f : files)  
    35.         {  
    36.             if(!f.isDirectory())  
    37.             {  
    38.                 for(int i = 0; i <= FileTest2.count; i++)  
    39.                 {  
    40.                     System.out.print(" ");  
    41.                 }  
    42.                 System.out.println(f.getName());  
    43.             }  
    44.         }  
    45.         FileTest2.count--;  
    46.     }  
    47.    
    48. }  
    49. public static void main(String[] args)  
    50. {  
    51.     File file = new File("C:\Program Files\Java\jre6");  
    52.     File[] files = file.listFiles();  
    53.     FileTest2.parse(files);  
    54. }  
    55.   
    56. }  
    57. **************************第二种****************************************
    58.  1 /*
       2     使用递归找出某目录("C:\JavaProducts")下的所有子目录以及子文件
       3 */
       4 
       5 import java.util.*;
       6 import java.io.*;
       7 
       8 public class FileRecursionPrintDemo{
       9     public static void main(String[] args){
      10         List<String> paths = new ArrayList<String>();
      11         paths = getAllFilePaths(new File("C:\JavaProducts"),paths);
      12         for(String path:paths){
      13             System.out.println(path);    
      14         }
      15     }
      16     
      17     private static List<String> getAllFilePaths(File filePath,List<String> filePaths){
      18         File[] files = filePath.listFiles();
      19         if(files == null){
      20             return filePaths;    
      21         }    
      22         for(File f:files){
      23             if(f.isDirectory()){
      24                 filePaths.add(f.getPath());
      25                 getAllFilePaths(f,filePaths);
      26             }else{
      27                 filePaths.add(f.getPath());
      28             }    
      29         }
      30         return filePaths;
      31     }
      32 }
  • 相关阅读:
    bzoj1618 / P2918 [USACO08NOV]买干草Buying Hay(完全背包)
    bzoj1617 / P2904 [USACO08MAR]跨河River Crossing
    bzoj1615 / P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler
    bzoj1613 / P1353 [USACO08JAN]跑步Running
    bzoj1612 / P2419 [USACO08JAN]牛大赛Cow Contest(Floyd)
    bzoj1611 / P2895 [USACO08FEB]流星雨Meteor Shower
    bzoj1610 / P2665 [USACO08FEB]连线游戏Game of Lines
    bzoj1609 / P2896 [USACO08FEB]一起吃饭Eating Together(最长不降子序列)
    bzoj1606 / P2925 [USACO08DEC]干草出售Hay For Sale(01背包)
    [bzoj1041][HAOI2008]圆上的整点
  • 原文地址:https://www.cnblogs.com/wangfeng520/p/7000175.html
Copyright © 2011-2022 走看看