Java I/O之用FilenameFilter实现根据文件扩展名删除文件

在Java中,你可以通过实现FilenameFilter类并重写accept(File dir, String name) 方法实现文件过滤功能。

在这个例子中,我们向你展示在“c:\\folder”路径下列出所有“.txt”格式的文件并删除。

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

packagecom.it161.demo;

importjava.io.*;

publicclassFileChecker {

privatestaticfinalString FILE_DIR ="c:\\folder";

privatestaticfinalString FILE_TEXT_EXT =".txt";

publicstaticvoidmain(String args[]) {

newFileChecker().deleteFile(FILE_DIR,FILE_TEXT_EXT);

}

publicvoiddeleteFile(String folder, String ext){

GenericExtFilter filter =newGenericExtFilter(ext);

File dir =newFile(folder);

//list out all the file name with .txt extension

String[] list = dir.list(filter);

if(list.length ==0)return;

File fileDelete;

for(String file : list){

String temp =newStringBuffer(FILE_DIR)

.append(File.separator)

.append(file).toString();

fileDelete =newFile(temp);

booleanisdeleted = fileDelete.delete();

System.out.println("file : "+ temp +" is deleted : "+ isdeleted);

}

}

//inner class, generic extension filter

publicclassGenericExtFilterimplementsFilenameFilter {

privateString ext;

publicGenericExtFilter(String ext) {

this.ext = ext;

}

publicbooleanaccept(File dir, String name) {

return(name.endsWith(ext));

}

}

}

原创文章,转载请注明出处:http://www.it161.com/article/javaDetail?articlehttp://www.it161.com/article/webDetail?article target="_blank" rel="nofollow">

更多原创内容,请访问:http://www.it161.com/