一、文件的处理需要加如下权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
1、获取指定路径下的所有文件
List<String> list = new ArrayList<>();
//获取指定路径下的所有文件
try {
list = getFilesAllName("/mnt/sdcard/DCIM/Camera");
} catch (Exception e) {
e.printStackTrace();
}
if(list != null){
for(String listname : list ){
Log.e(TAG,"listname :"+listname );
//判断文件是不是MP4后缀
if(listname .endsWith(".mp4")){
//获取路径下最后一个‘/’后的坐标
int lastindex = listname .lastIndexOf("/");
//获取具体文件名称
String name= listname .substring(lastindex+1,listname .length());
//获取到想要的名称后,去干你想干的事
//dosomething
}
}
}
2、获取目录下所有文件
public List<String> getFilesAllName(String path){
File file=new File(path);
Log.e(TAG,"==getFileSizes(file)==");
File[] files=file.listFiles();
if (files == null){
Log.e(TAG,"空目录");
return null;
}
List<String> s = new ArrayList<>();
for(int i =0;i<files.length;i++){
s.add(files[i].getAbsolutePath());
}
return s;
}
3、获取指定文件夹
public long getFileSizes(File f) throws Exception{
long size = 0;
File flist[] = f.listFiles();
for (int i = 0; i < flist.length; i++) {
if (flist[i].isDirectory()) {
size = size + getFileSizes(flist[i]);
} else {
size = size + getFileSize(flist[i]);
}
}
return size;
}
4、获取指定文件大小
public long getFileSize(File file) throws Exception {
long size = 0;
if (file.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(file);
size = fis.available();
} else {
file.createNewFile();
Log.e("获取文件大小", "文件不存在!");
}
return size;
}
5、转换文件大小
public static String FormetFileSize(long fileS) {
DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString = "";
String wrongSize = "0B";
if (fileS == 0) {
return wrongSize;
}
if (fileS < 1024) {
fileSizeString = df.format((double) fileS) + "B";
} else if (fileS < 1048576) {
fileSizeString = df.format((double) fileS / 1024) + "KB";
} else if (fileS < 1073741824) {
fileSizeString = df.format((double) fileS / 1048576) + "MB";
} else {
fileSizeString = df.format((double) fileS / 1073741824) + "GB";
}
return fileSizeString;
}