day23 遍历 所有文件夹 子文件夹 文件

统计目录大小

 public static long getAllFilesLength(File file) {
        long length = 0l;

        if (file == null) {
            System.out.println("文件为空");
        }

        long fileLengths[] = new long[0];
        File files[] = file.listFiles();


        for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory()) {
                length += getAllFilesLength(files[i]);
            } else if (files[i].isFile()) {
                length += files[i].length();
               fileLengths =  Arrays.copyOf(fileLengths,fileLengths.length+1);
                fileLengths[fileLengths.length-1] = files[i].length();

            }
        }
//        System.out.println(Arrays.toString(fileLengths));
        return length;
    }




获取文件下所有mp3,包括子文件的下的mp3文件

public static String[] getAllmp3s(File file) {
    if (file == null) {
        System.out.println("12");
        return null;
    }

    File files[] = file.listFiles();//将目录文件 转换  文件类型数组
    String mp3[] = new String[0];
    if (file.isDirectory()) {//是文件夹  方法一开始判断非文件夹 空文件的情况,不会出现空指针
        for (File file1 : files) {//遍历文件夹
            if (file1.getName().endsWith("mp3")) {
                 mp3 = Arrays.copyOf(mp3, mp3.length+1);
                mp3[mp3.length - 1] = file1.getName();
                System.out.println(file1.getName());
            }
        }
    }
    return mp3;
}


 创建一个字符串类型的空指针数组,将原有数组遍历后,空数组扩容一个,放一个原数组元素。

public static String[]  getAllMap3(File file){

    if (file == null){
        return null;
    }

    File[]  files = file.listFiles(new FileFilter() {
        @Override
        public boolean accept(File f) {
            return f.getName().equals(".mp3");
        }
    });
String[] mp3s = new String[0];

for (File file1 : files) {
    mp3s = Arrays.copyOf(mp3s,mp3s.length+1);
    mp3s[mp3s.length-1] = file1.getName();
}
return mp3s;}


 fis.read

day23 遍历 所有文件夹 子文件夹 文件_第1张图片

fis.write

 day23 遍历 所有文件夹 子文件夹 文件_第2张图片

 

 

你可能感兴趣的:(java,算法,开发语言)