注册 登录
编程论坛 JAVA论坛

求目录下有多上个Java文件,求大佬有没有更好的计数方法?

蓄力小绵羊 发布于 2018-04-30 13:07, 1845 次点击
public class Demo_1 {
   
    static int count = 0;
        //这里可不可以用别的方法计数,感觉放在外面不怎么好。    求大佬指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    public static void main(String[] args) {
        File file = new File("E:\\java工具\\软件\\Java 工具\\eclipse\\workspace\\Fuxi\\src");
        
        String str =".java";
        
        int sum = sum(file,str);
        
        System.out.println(sum);
        
        
     }
    public static int sum (File file,String str){
        
        if (file.isDirectory()) {
            //获取目录下的字文件
            File[] files = file.listFiles();
            for (File file2 : files) {
                if (file2.isFile()) {
                    if (file2.getName().endsWith(str)) {
                        count++;
                    }
                    
                } else {
                    sum(file2,str);
                }
            }
        }
        
        return count;
    }
}
4 回复
#2
疯狂的小a2018-04-30 13:50
程序代码:
import public class Demo_1 {
    public static void main(String[] args) {
        File file = new File("E:\\java工具\\软件\\Java\\工具\\eclipse\\workspace\\Fuxi\\src");
        System.out.println(getTotal(file, ".java"));
    }

    public static int getTotal(File file, String str) {
        int total = 0;
        if (file.isDirectory()) {
            // 获取目录下的子文件
            File[] files = file.listFiles();
            for (File file2 : files) {
                if (file2.isFile())
                    if (file2.getName().endsWith(str))
                        total++;
                    else
                        getTotal(file2, str);
            }
        }
        return total;
    }

}

为啥要放在成员位置,没有必要呀
#3
蓄力小绵羊2018-04-30 15:37
回复 2楼 疯狂的小a
你把变量放在第一行,递归的时候不会清零的吗?
#4
疯狂的小a2018-04-30 17:08
回复 3楼 蓄力小绵羊
程序代码:
import public class Demo_1 {
    public static void main(String[] args) {
        File file = new File("/home/xiaoa/桌面/test");
        System.out.println(getTotal(file, ".java"));
    }

    static int total = 0;
    public static int getTotal(File file, String str) {
        if (file.isDirectory()) {
            // 获取目录下的子文件
            File[] files = file.listFiles();
            for (File file2 : files) {
                if (file2.isFile()) {
                    if (file2.getName().endsWith(str))
                        total++;
                } else {
                    getTotal(file2, str);
                }
            }
        }
        return total;
    }
}
不好意思,脑子瓦特了
那这个变量真的只能作为成员变量了,让每一次遍历,都共享这个变量。
#5
蓄力小绵羊2018-04-30 20:03
嗯嗯,谢拉
1