天天看点

实用正则表达式扫描android SDcard的文件

01

02

03

04

05

06

07

08

09

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

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

<code>package</code>

<code>match;</code>

<code>import</code>

<code>java.io.file;</code>

<code>java.util.regex.matcher;</code>

<code>java.util.regex.pattern;</code>

<code>public</code>

<code>class</code> <code>utils {</code>

<code>       </code><code>/**</code>

<code>         </code><code>* 遍历指定文件夹下的资源文件</code>

<code>         </code><code>* @param folder 文件</code>

<code>         </code><code>*/</code>

<code>       </code><code>public</code>

<code>static</code> <code>void</code> <code>simplescanning(file folder) {</code>

<code>               </code><code>//指定正则表达式</code>

<code>               </code><code>pattern mpattern = pattern.compile(</code><code>"([^\\.]*)\\.([^\\.]*)"</code><code>);</code>

<code>               </code><code>// 当前目录下的所有文件</code>

<code>               </code><code>final</code>

<code>string[] filenames = folder.list();</code>

<code>               </code><code>// 当前目录的名称</code>

<code>               </code><code>//final string foldername = folder.getname();</code>

<code>               </code><code>// 当前目录的绝对路径</code>

<code>               </code><code>//final string folderpath = folder.getabsolutepath();</code>

<code>               </code><code>if</code>

<code>(filenames !=</code><code>null</code><code>) {</code>

<code>                       </code><code>// 遍历当前目录下的所有文件</code>

<code>                       </code><code>for</code>

<code>(string name : filenames) {</code>

<code>                               </code><code>file file =</code><code>new</code>

<code>file(folder, name);</code>

<code>                               </code><code>// 如果是文件夹则继续递归当前方法</code>

<code>                               </code><code>if</code>

<code>(file.isdirectory()) {</code>

<code>                                       </code><code>simplescanning(file);</code>

<code>                               </code><code>}</code>

<code>                               </code><code>// 如果是文件则对文件进行相关操作</code>

<code>                               </code><code>else</code>

<code>{</code>

<code>                                       </code><code>matcher matcher = mpattern.matcher(name);</code>

<code>                                       </code><code>if</code>

<code>(matcher.matches()) {</code>

<code>                                               </code><code>// 文件名称</code>

<code>                                               </code><code>string filename = matcher.group(</code><code>1</code><code>);</code>

<code>                                               </code><code>// 文件后缀</code>

<code>                                               </code><code>string fileextension = matcher.group(</code><code>2</code><code>);</code>

<code>                                               </code><code>// 文件路径</code>

<code>                                               </code><code>string filepath = file.getabsolutepath();</code>

<code>                                               </code> 

<code>                                               </code><code>if</code>

<code>(utils.ismusic(fileextension)) {</code>

<code>                                                       </code><code>// 初始化音乐文件......................</code>

<code>                                                       </code><code>system.out.println(</code><code>"this file is music file,filename="</code><code>+filename+</code><code>"."</code>

<code>                                                                       </code><code>+fileextension+</code><code>",filepath="</code><code>+filepath);</code>

<code>                                               </code><code>}</code>

<code>(utils.isphoto(fileextension)) {</code>

<code>                                                       </code><code>// 初始化图片文件......................</code>

<code>                                                       </code><code>system.out.println(</code><code>"this file is photo file,filename="</code><code>+filename+</code><code>"."</code>

<code>(utils.isvideo(fileextension)) {</code>

<code>                                                       </code><code>// 初始化视频文件......................</code>

<code>                                                       </code><code>system.out.println(</code><code>"this file is video file,filename="</code><code>+filename+</code><code>"."</code>

<code>                                       </code><code>}</code>

<code>                       </code><code>}</code>

<code>               </code><code>}</code>

<code>       </code><code>}</code>

<code>         </code><code>* 判断是否是音乐文件</code>

<code>         </code><code>* @param extension 后缀名</code>

<code>         </code><code>* @return</code>

<code>static</code> <code>boolean</code> <code>ismusic(string extension) {</code>

<code>(extension ==</code><code>null</code><code>)</code>

<code>                       </code><code>return</code>

<code>false</code><code>;</code>

<code>string ext = extension.tolowercase();</code>

<code>(ext.equals(</code><code>"mp3"</code><code>) || ext.equals(</code><code>"m4a"</code><code>) || ext.equals(</code><code>"wav"</code><code>) || ext.equals(</code><code>"amr"</code><code>) || ext.equals(</code><code>"awb"</code><code>) ||</code>

<code>                               </code><code>ext.equals(</code><code>"aac"</code><code>) || ext.equals(</code><code>"flac"</code><code>) || ext.equals(</code><code>"mid"</code><code>) || ext.equals(</code><code>"midi"</code><code>) ||</code>

<code>                               </code><code>ext.equals(</code><code>"xmf"</code><code>) || ext.equals(</code><code>"rtttl"</code><code>) || ext.equals(</code><code>"rtx"</code><code>) || ext.equals(</code><code>"ota"</code><code>) ||</code>

<code>                               </code><code>ext.equals(</code><code>"wma"</code><code>) ||ext.equals(</code><code>"ra"</code><code>) || ext.equals(</code><code>"mka"</code><code>) || ext.equals(</code><code>"m3u"</code><code>) || ext.equals(</code><code>"pls"</code><code>)) {</code>

<code>true</code><code>;</code>

<code>               </code><code>return</code>

<code>         </code><code>* 判断是否是图像文件</code>

<code>static</code> <code>boolean</code> <code>isphoto(string extension) {</code>

<code>(ext.endswith(</code><code>"jpg"</code><code>) || ext.endswith(</code><code>"jpeg"</code><code>) || ext.endswith(</code><code>"gif"</code><code>) || ext.endswith(</code><code>"png"</code><code>) ||</code>

<code>                               </code><code>ext.endswith(</code><code>"bmp"</code><code>) || ext.endswith(</code><code>"wbmp"</code><code>)) {</code>

<code>         </code><code>* 判断是否是视频文件</code>

<code>static</code> <code>boolean</code> <code>isvideo(string extension) {</code>

<code>(ext.endswith(</code><code>"mpeg"</code><code>) || ext.endswith(</code><code>"mp4"</code><code>) || ext.endswith(</code><code>"mov"</code><code>) || ext.endswith(</code><code>"m4v"</code><code>) ||</code>

<code>                               </code><code>ext.endswith(</code><code>"3gp"</code><code>) || ext.endswith(</code><code>"3gpp"</code><code>) || ext.endswith(</code><code>"3g2"</code><code>) ||</code>

<code>                               </code><code>ext.endswith(</code><code>"3gpp2"</code><code>) || ext.endswith(</code><code>"avi"</code><code>) || ext.endswith(</code><code>"divx"</code><code>) ||</code>

<code>                               </code><code>ext.endswith(</code><code>"wmv"</code><code>) || ext.endswith(</code><code>"asf"</code><code>) || ext.endswith(</code><code>"flv"</code><code>) ||</code>

<code>                               </code><code>ext.endswith(</code><code>"mkv"</code><code>) || ext.endswith(</code><code>"mpg"</code><code>) || ext.endswith(</code><code>"rmvb"</code><code>) ||</code>

<code>                               </code><code>ext.endswith(</code><code>"rm"</code><code>) || ext.endswith(</code><code>"vob"</code><code>) || ext.endswith(</code><code>"f4v"</code><code>)) {</code>

<code>}</code>

下面使用该工具类进行测试指定的路径:/home/ouyangpeng/justfortest当前路径下放了一些测试文件,如下图所示:

实用正则表达式扫描android SDcard的文件

<code>class</code> <code>test{</code>

<code>static</code> <code>void</code> <code>main(string[] args) {</code>

<code>               </code><code>string path=</code><code>"/home/ouyangpeng/justfortest"</code><code>;</code>

<code>               </code><code>file file =</code><code>new</code>

<code>file(path);</code>

<code>(file==</code><code>null</code><code>) {</code>

<code>                       </code><code>system.out.println(</code><code>"file does not exist"</code><code>);</code>

<code>               </code><code>}</code><code>else</code><code>{</code>

<code>                       </code><code>utils.simplescanning(file);</code>

原文网址:http://blog.csdn.net/ouyang_peng/article/details/17008129

继续阅读