实用正则表达式扫描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

package

match;

 

import

java.io.File;

import

java.util.regex.Matcher;

import

java.util.regex.Pattern;

 

public

class

Utils {

   
   
/**

   
     
*
遍历指定文件夹下的资源文件

   
     
*
@param folder 文件

   
     
*/

   
   
public

static

void

simpleScanning(File folder) {

   
           
//指定正则表达式

   
           
Pattern
mPattern = Pattern.compile(
"([^\\.]*)\\.([^\\.]*)");

   
           
//
当前目录下的所有文件

   
           
final

String[] filenames = folder.list();

   
           
//
当前目录的名称

   
           
//final
String folderName = folder.getName();

   
           
//
当前目录的绝对路径

   
           
//final
String folderPath = folder.getAbsolutePath();

   
           
if

(filenames !=
null)
{

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

   
                   
for

(String name : filenames) {

   
                           
File
file =
new

File(folder, name);

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

   
                           
if

(file.isDirectory()) {

   
                                   
simpleScanning(file);

   
                           
}

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

   
                           
else

{

   
                                   
Matcher
matcher = mPattern.matcher(name);

   
                                   
if

(matcher.matches()) {

   
                                           
//
文件名称

   
                                           
String
fileName = matcher.group(
1);

   
                                           
//
文件后缀

   
                                           
String
fileExtension = matcher.group(
2);

   
                                           
//
文件路径

   
                                           
String
filePath = file.getAbsolutePath();

   
                                           
 

   
                                           
if

(Utils.isMusic(fileExtension)) {

   
                                                   
//
初始化音乐文件......................

   
                                                   
System.out.println("This
file is Music File,fileName="
+fileName+"."

   
                                                                   
+fileExtension+",filePath="+filePath);

   
                                           
}

   
                                           
 

   
                                           
if

(Utils.isPhoto(fileExtension)) {

   
                                                   
//
初始化图片文件......................

   
                                                   
System.out.println("This
file is Photo File,fileName="
+fileName+"."

   
                                                                   
+fileExtension+",filePath="+filePath);

   
                                           
}

   
                                           
 

   
                                           
if

(Utils.isVideo(fileExtension)) {

   
                                                   
//
初始化视频文件......................

   
                                                   
System.out.println("This
file is Video File,fileName="
+fileName+"."

   
                                                                   
+fileExtension+",filePath="+filePath);

   
                                           
}

   
                                   
}

   
                           
}

   
                   
}

   
           
}

   
   
}

   
   
/**

   
     
*
判断是否是音乐文件

   
     
*
@param extension 后缀名

   
     
*
@return

   
     
*/

   
   
public

static

boolean

isMusic(String extension) {

   
           
if

(extension ==
null)

   
                   
return

false
;

 

   
           
final

String ext = extension.toLowerCase();

   
           
if

(ext.equals(
"mp3")
|| ext.equals(
"m4a")
|| ext.equals(
"wav")
|| ext.equals(
"amr")
|| ext.equals(
"awb")
||

   
                           
ext.equals("aac")
|| ext.equals(
"flac")
|| ext.equals(
"mid")
|| ext.equals(
"midi")
||

   
                           
ext.equals("xmf")
|| ext.equals(
"rtttl")
|| ext.equals(
"rtx")
|| ext.equals(
"ota")
||

   
                           
ext.equals("wma")
||ext.equals(
"ra")
|| ext.equals(
"mka")
|| ext.equals(
"m3u")
|| ext.equals(
"pls"))
{

   
                   
return

true
;

   
           
}

   
           
return

false
;

   
   
}

   
   
/**

   
     
*
判断是否是图像文件

   
     
*
@param extension 后缀名

   
     
*
@return

   
     
*/

   
   
public

static

boolean

isPhoto(String extension) {

   
           
if

(extension ==
null)

   
                   
return

false
;

 

   
           
final

String ext = extension.toLowerCase();

   
           
if

(ext.endsWith(
"jpg")
|| ext.endsWith(
"jpeg")
|| ext.endsWith(
"gif")
|| ext.endsWith(
"png")
||

   
                           
ext.endsWith("bmp")
|| ext.endsWith(
"wbmp"))
{

   
                   
return

true
;

   
           
}

   
           
return

false
;

   
   
}

   
   
/**

   
     
*
判断是否是视频文件

   
     
*
@param extension 后缀名

   
     
*
@return

   
     
*/

   
   
public

static

boolean

isVideo(String extension) {

   
           
if

(extension ==
null)

   
                   
return

false
;

 

   
           
final

String ext = extension.toLowerCase();

   
           
if

(ext.endsWith(
"mpeg")
|| ext.endsWith(
"mp4")
|| ext.endsWith(
"mov")
|| ext.endsWith(
"m4v")
||

   
                           
ext.endsWith("3gp")
|| ext.endsWith(
"3gpp")
|| ext.endsWith(
"3g2")
||

   
                           
ext.endsWith("3gpp2")
|| ext.endsWith(
"avi")
|| ext.endsWith(
"divx")
||

   
                           
ext.endsWith("wmv")
|| ext.endsWith(
"asf")
|| ext.endsWith(
"flv")
||

   
                           
ext.endsWith("mkv")
|| ext.endsWith(
"mpg")
|| ext.endsWith(
"rmvb")
||

   
                           
ext.endsWith("rm")
|| ext.endsWith(
"vob")
|| ext.endsWith(
"f4v"))
{

   
                   
return

true
;

   
           
}

   
           
return

false
;

   
   
}

}

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


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

package

match;

 

import

java.io.File;

 

public

class

Test{

   
   
public

static

void

main(String[] args) {

   
           
String
path=
"/home/ouyangpeng/justForTest";

   
           
File
file =
new

File(path);

   
           
if

(file==
null)
{

   
                   
System.out.println("file
does not exist"
);

   
           
}else{

   
                   
Utils.simpleScanning(file);

   
           
}

   
   
}

}

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

时间: 2024-09-03 17:53:07

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

Android sdcard媒体文件更新

本文出之于网络,非本人撰写             Android平台基于Linux和开放手机联盟(OHA)系统,经过中国移动的创新研发,设计出拥有新颖独特的用户操作界面,增强了浏览器能力和WAP 兼容性,优化了多媒体领域的OpenCORE.浏览器领域的WebKit等业内众多知名引擎,增加了包括游戏.Widget.Java ME等在内的先进平台中间件.本文主要介绍如何利用OPhone平台提供的多媒体编程环境进行音乐资源的管理与播放. MediaScanner与音乐信息扫描 Android系统在S

android sdcard 创建文件总是失败!

问题描述 小弟最近在做一个MP3播放器当作练习,可是到在SDCard创建文件时老是报错,弄了好几天都解决不了.麻烦各位指点迷津,非常感谢.每当执行到file.createNewFile()就报错,报错信息是java.io.IOException: invalid argument目录能够成功创建,就文件不行.目录路径:/mnt/sdcard/mp3/ 文件路径:/mnt/sdcard/mp3/heart.mp3注:sdcard文件操作权限已添加 问题补充:非常感谢lz解答,可能我表达的不清楚,我

Android SDCard操作(文件读写,容量计算)

原文:http://crackren.iteye.com/blog/747121 android.os.Environment 提供访问环境变量   java.lang.Object     android.os.Environment   Environment 静态方法:   方法 : getDataDirectory () 返回 : File 解释 : 返回Data的目录 方法 : getDownloadCacheDirectory () 返回 : File 解释 : 返回下载缓冲区目录

android中把文件保存到sdcard代码实例_Android

直接上代码: package com.example.test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import andr

Android实现把文件存放在SDCard的方法_Android

本文实例讲述了Android实现把文件存放在SDCard的方法.分享给大家供大家参考.具体如下: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的.对于像视频这样的大文件,我们可以把它存放在SDCard. SDCard是干什么的?你可以把它看作是移动硬盘或U盘. 在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件).创建

Android中使用SDcard读取文件_Android

平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储(使用File操作进行存储):由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了一下在android进行sdcard的存储使用方法; 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!-- 在SDCard中创建与删除文件权限 --

Android编程获取sdcard音乐文件的方法_Android

本文实例讲述了Android编程获取sdcard音乐文件的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: Cursor  query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder); Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档. Projection: 指定查询数据库表中的哪几列,

Android中使用SDcard进行文件的读取方法

  在AndroidManifest.xml中加入访问SDCard的权限如下:   <!-- 在SDCard中创建与删除文件权限 -->  代码如下 复制代码   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  <!-- 往SDCard写入数据权限 -->  代码如下 复制代码  <uses-permission android:na

Android编程获取sdcard音乐文件的方法

本文实例讲述了Android编程获取sdcard音乐文件的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下:Cursor  query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder); Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档. Projection: 指定查询数据库表中的哪几列,返