注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

小例子:java读取文件夹中的文件名并排序显示(转)  

2013-01-07 18:45:54|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

要求:给定任意一个目录,以树形方式展示出该目录中的所有子目录和文件。另外,在展现的时候将目录排在上面,文件排在下面。每一层要加上一个缩进(tab)。


  1. import java.io.File;  
  2. import java.util.ArrayList;  
  3.   
  4. public class ListAllFile  
  5. {  
  6.     //用于判断目录或文件所在的层次  
  7.     public static int time;  
  8.       
  9.     //递归方法  
  10.     public static void deepList(File file)  
  11.     {  
  12.         if (file.isFile() || (0 == file.list().length))  
  13.         {  
  14.             return;  
  15.         }  
  16.         else  
  17.         {  
  18.             File[] files = file.listFiles();  
  19.               
  20.             files = sort(files);  
  21.               
  22.             for (File f : files)  
  23.             {  
  24.                 StringBuffer buff = new StringBuffer();  
  25.                 if (f.isFile())  
  26.                 {  
  27.                     buff.append(getTab(time));  
  28.                     buff.append(f.getName());  
  29.                 }  
  30.                 else  
  31.                 {  
  32.                     buff.append(getTab(time));  
  33.                     buff.append(f.getName());  
  34.                     buff.append("】");  
  35.                 }  
  36.                 System.out.println(buff.toString());  
  37.                   
  38.                 if (f.isDirectory())  
  39.                 {  
  40.                     time++;  
  41.                     deepList(f);  
  42.                     time--;  
  43.                 }                  
  44.             }  
  45.         }  
  46.     }  
  47.       
  48.     /**  
  49.      * 将文件数组排序,目录放在上面,文件在下面  
  50.      * @param file  
  51.      * @return  
  52.      */  
  53.     private static File[] sort(File[] file)  
  54.     {  
  55.         ArrayList<File> list = new ArrayList<File>();  
  56.         //放入所有目录  
  57.         for (File f : file)  
  58.         {  
  59.             if (f.isDirectory())  
  60.             {  
  61.                 list.add(f);  
  62.             }  
  63.         }  
  64.         //放入所有文件  
  65.         for (File f : file)  
  66.         {  
  67.             if (f.isFile())  
  68.             {  
  69.                 list.add(f);  
  70.             }  
  71.         }  
  72.           
  73.         return list.toArray(new File[file.length]);  
  74.     }  
  75.       
  76.     /**  
  77.      * 根据文件夹层数添加tab符号  
  78.      * @param time 文件夹层数  
  79.      * @return  
  80.      */  
  81.     private static String getTab(int time)  
  82.     {  
  83.         StringBuffer buff = new StringBuffer();  
  84.         for (int i = 0; i < time; i++)  
  85.         {  
  86.             buff.append("\t");  
  87.         }  
  88.         return buff.toString();  
  89.     }  
  90.       
  91.     public static void main(String[] args)  
  92.     {  
  93.         // TODO Auto-generated method stub  
  94.         File f = new File("D:/1b9e862b064769805fb005c3");  
  95.         deepList(f);  
  96.     }      
  97. }  



结果:

struts-sample】
.myeclipse】
.settings】
.jsdtscope
org.eclipse.jdt.core.prefs
org.eclipse.wst.jsdt.ui.superType.container
org.eclipse.wst.jsdt.ui.superType.name
org.maven.ide.eclipse.prefs
conf】
src】
action】
Test.java
TestAction.java
struts.xml
web】
  评论这张
 
阅读(1546)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016