zoukankan      html  css  js  c++  java
  • File遍历以及FilenameFilter的使用

    首先遍历来一下,这里分为递归与不递归的两种操作:

    非递归操作

    //非递归复用了 LinkedList
        private static void NotRecursive() {
            LinkedList<File> list=new LinkedList<>();
            int folderNum=0;
            int fileNum=0;
            
            File file=new File("E:/动脑");
            if(file.exists()){
                File[] fs=file.listFiles();
                for(File f1:fs){
                    if(f1.isDirectory()){
                        folderNum++;
                        list.add(f1);
    //                    System.out.println("Folder Name:"+f1.getName());
                    }else{
                        fileNum++;
                        System.out.println("File Name:"+f1.getName());
                    }
                }
                File f2;
                while(!list.isEmpty()){
                    f2=list.removeFirst();
                    fs=f2.listFiles();
                    for(File f1:fs){
                        if(f1.isDirectory()){
                            folderNum++;
                            list.add(f1);
    //                        System.out.println("Folder Name:"+f1.getName());
                        }else{
                            fileNum++;
                            System.out.println("File Name:"+f1.getName());
                        }
                    }
                }
            }else{
                System.out.println("非文件目录");
            }
            System.out.println("FileNum: "+fileNum+"   FolderNum: "+folderNum);
        }

    递归操作:并筛选出MP3格式的文件

    private static LinkedList<File> Recursive(String path) {
         
            LinkedList<File> list=new LinkedList<>();
            File file=new File(path);
            if(file.exists()){
                File[] fs =file.listFiles();
                for(File f1:fs){
                    if(f1.isDirectory()){
                        Recursive(f1.getAbsolutePath());
                    }else{
                        if(f1.getName().endsWith("mp3"))
                        list.add(f1);
                        System.out.println("File Name:"+f1.getName());
                    }
                }
            }else{
                
            }
            return list;
        }
    public class DirList {
    
        public static void main(String[] args) {
            String path="E:/动脑";
            File file=new File(path);
            String[] fs=file.list(new FilenameFilter() {
                private String tag=".mp3";
                @Override
                public boolean accept(File dir, String name) {
                    return name.endsWith(tag);
                }
            });
            long l=0;
            Arrays.sort(fs);
            for(String s1:fs){
                System.out.println(s1);
                l+=new File("E:/动脑/"+s1).length();
            }
            
            System.out.println(l/1024/1024);
        }
    
    }
  • 相关阅读:
    1571:【例 3】凸多边形的划分
    1570:【例 2】能量项链
    2.25
    2.24 T2 牧场 by greens 1s 128M (pasture.cpp)
    2.24 T1 P3515 [POI2011]Lightning Conductor
    白嫖视频的方法
    2.24 T3 P1912 [NOI2009] 诗人小G
    2.24
    斜率优化
    windy数的补充——数位dp中如何求[a,b]区间内的方案数
  • 原文地址:https://www.cnblogs.com/zzl521/p/8987358.html
Copyright © 2011-2022 走看看