在项目里面用到的,在一个文件夹下找到所有的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,获取一些元数据信息