我想得到D:\Images下的图片数量(假设全部都是jpg的图片了),如何用程序实现并把这个数量值打印到控制台上呢?谢谢...

解决方案 »

  1.   

    File file = new File("D:\\Images");
    System.out.println(file.list().length);
      

  2.   

    File 的list方法能把文件列出来,包含文件夹的话好像不会深入进去
      

  3.   

    如果要区分开文件夹和文件呢?就是统计出Image下有几个文件夹,几个非文件夹文件呢???谢谢....
      

  4.   


    File file = new File("D:\\Images");
    int count=0;
    for(File f:file.listFiles()){
      if(f.isFile()){
        count++;
      }
    }
    System.out.println(count);
      

  5.   

    list之后用isFile或者isDerectory判断是文件还是文件夹
      

  6.   


    import java.io.File;public class FileCounter
    {
        /**
         * 文件夹总数,初始化为-1,不包括根目录
         */
        private int folderCnt = -1;
        
        /**
         * 文件总数
         */
        private int fileCnt = 0;
        
        /**
         * 图片总数
         */
        private int imgCnt = 0;
        
        public void count(String path)
        {
            File file = new File(path);
            if(file.exists() && file.isDirectory())
            {
                count(file);
            }
            else
            {
                System.out.println("Bad input parameters.");
                return;
            }
            System.out.println("There are " + folderCnt + " folder(s).");
            System.out.println("There are " + fileCnt + " file(s).");
            System.out.println("There are " + imgCnt + " image(s).");
        }
        
        private void count(File path)
        {
            //如果是文件夹,则递归调用
            if(path.isDirectory())
            {
                folderCnt++;
                File[] files = path.listFiles();
                for(File file : files)
                {
                    count(file);
                }
            }
            else
            {
                //文件数增加1
                fileCnt++;
                
                //根据扩展名判断是否是图片。
                if(path.getName().endsWith("jpg") || path.getName().endsWith("jpeg"))
                {
                    imgCnt++;
                }
            }
        }
        
        public static void main(String[] args)
        {
            new FileCounter().count("E:\\TEST");
        }
    }