一个递归遍历文件夹的例子

在项目里面用到的,在一个文件夹下找到所有的msml格式的文件,用String返回它们的绝对路径,都放在一个list里。文件夹下可能还有文件夹,msml文件可能放在任何一级的文件夹下,这里实际上写了一个最基本的递归文件夹去找某个符合要求的选项的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package  meta.util;
 
import  java.io.File;
import  java.util.ArrayList;
 
 
 
public  class  ScanDir {
 
     private  ArrayList<String> filelist =  new  ArrayList<String>(); //放在一个list中
 
     public  ArrayList<String> getFilelist() {
         return  filelist;
     }
 
     public  void  setFilelist(ArrayList<String> filelist) {
         this .filelist = filelist;
     }
 
     
     
     
     //递归查找路径strPath下的所有msml后缀的文件
     public  void  refreshFileList(String strPath) {
 
         String filename; //文件名
         String suf; //文件后缀
         File dir =  new  File(strPath); //文件夹dir
         File[] files = dir.listFiles(); //文件夹下的所有文件或文件夹
 
         if  (files ==  null )
             return ;
 
         for  ( int  i =  0 ; i < files.length; i++) {
             
             if  (files[i].isDirectory()) 
             {
                 System.out.println( "---"  + files[i].getAbsolutePath());
                 refreshFileList(files[i].getAbsolutePath()); //递归文件夹!!!
 
            
             else  {
                 filename = files[i].getName();  
                 int  j = filename.lastIndexOf( "." );  
                 suf = filename.substring(j+ 1 ); //得到文件后缀
                 
                 
                 if (suf.equalsIgnoreCase( "msml" )) //判断是不是msml后缀的文件
                 {
                     String strFileName = files[i].getAbsolutePath().toLowerCase();
                     
                     filelist.add(files[i].getAbsolutePath()); //对于文件才把它的路径加到filelist中
                 }               
             }
             
         }
     }
     
}

得到了这样一个list,就可以依次对每个msml文件进行解析,用DOM解析或者SAX,获取一些元数据信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值