天天看點

實用正規表達式掃描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

繼續閱讀