有什么方法计算整个文件夹大小,但不遍历整个文件夹?

解决方案 »

  1.   

    Windows浏览器也没直接显示文件夹大小
    看来没有直接的方法
      

  2.   

    http://topic.csdn.net/t/20020924/13/1048808.html
    ===================================   
      dir   size   
      ===================================   
      #include   <iostream>   
      #import   "scrrun.dll"   raw_interfaces_only     
      int   main()   
      {   
      CoInitialize(NULL);   
      {   
      try   
      {   
      Scripting::IFileSystem3Ptr   fs;   
      fs.CreateInstance(__uuidof(Scripting::FileSystemObject));   
      Scripting::IFolderPtr   folder;   
      fs->GetFolder(_bstr_t("c:\\temp"),&folder);   
      _variant_t   vsize;folder->get_Size(&vsize);   
      std::cout<<"c:\\temp   size:"<<(long)vsize<<"   bytes"<<std::endl;   
      }   
      catch(_com_error   &e)   
      {   
      _bstr_t   bstrSource(e.Source());   
      _bstr_t   bstrDescription(e.Description());   
      std::cout<<"Get   directory   size   via   FileSystemObject,   by   masterz"<<std::endl;   
      std::cout<<"COM   error   occurred,source:"<<(LPCTSTR)bstrSource<<std::endl;   
      std::cout<<"Description:"<<(LPCTSTR)bstrDescription<<std::endl;   
      }   
      }   
      CoUninitialize();   
      return   0;   
      } 
      

  3.   

    只能遍历文件后计算,不能直接得到
    用右键查看文件夹属性时,如果文件很多的话,可以看到文件夹大小那个数字是不断跳动而不是直接显示的就知道windows也是通过遍历算出来的
      

  4.   

    即使是windows内部也是浏览更个文件夹来计算大小的
    无法直接计算文件夹大小
    当然返回文件夹大小倒是可以
      

  5.   

    windows好象也是用的遍历,然后累计的方法.
    因为当你把鼠标放在比较大的文件夹上的时候,会感到硬盘在狂响.