随笔 - 89  文章 - 118  trackbacks - 0
<2016年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

留言簿(16)

随笔分类(56)

随笔档案(89)

文章分类

推荐博客

搜索

  •  

最新随笔

最新评论

阅读排行榜


#import   
"scrrun.dll"   raw_interfaces_only

// 参数格式:"c:\" 或 "c:\test"
ULONGLONG GetPathUseSpace(
const char *szPath)
{
    ASSERT(szPath 
!= NULL);

    
int nLen = strlen(szPath);
    
if (nLen == 0)
        
return 0;

    ULONGLONG result 
= 0;

    
if (nLen == 3)      // c:\
    {
        ULARGE_INTEGER nFreeBytesAvailable;
        ULARGE_INTEGER nTotalNumberOfBytes;
        ULARGE_INTEGER nTotalNumberOfFreeBytes;
        
//
        if (GetDiskFreeSpaceEx(szPath,
              
&nFreeBytesAvailable,
              
&nTotalNumberOfBytes,
              
&nTotalNumberOfFreeBytes))
        {
            result 
= nTotalNumberOfBytes.QuadPart - nFreeBytesAvailable.QuadPart;
        }
    }
    
else
    {
        CoInitialize(NULL);  
        {  
            
try  
            {  
                Scripting::IFileSystem3Ptr   fs;  
                fs.CreateInstance(__uuidof(Scripting::FileSystemObject)); 
                
                Scripting::IFolderPtr   folder;  
                fs
->GetFolder(_bstr_t(szPath),&folder);
                
                _variant_t vsize;
                folder
->get_Size(&vsize);
                result 
= (double)vsize;
            }  
            
catch(_com_error &e)  
            {  
                result 
= -1;
            }  
        }  

        CoUninitialize();   
    }

    
return result;
}


VC取得目录的大小可以用COM方式,但是在某些操作系统上使用COM方式取根目录大小(即某一个盘已用空间)会出现问题,可以用GetDiskFreeSpaceEx,上面是我写了一个小函数。
posted on 2008-07-02 16:33 胡满超 阅读(2314) 评论(13)  编辑 收藏 引用

FeedBack:
# re: VC取得目录大小 2008-07-03 10:28 pang
你好 我是出版社的编辑,我看到你博客中的内容,感觉写的非常不错。
现在正在找人写一个VC的书。
如果想把这些内容和更多的人分享,可以和我联系,把这些东西写成书。
我的邮箱:books_522008@yahoo.com.cn  回复  更多评论
  
# re: VC取得目录大小 2010-07-29 09:30 zhaoyw'
不错,谢谢了啊  回复  更多评论
  
# re: VC取得目录大小 2010-09-03 08:53 胡满超
不客气,谢谢鼓励@zhaoyw'
  回复  更多评论
  
# re: VC取得目录大小 2011-10-24 09:11 
造成对于业绩构成的 主体必须明确,构成业绩的三个主体是厂家,商家,市场三个提下下面达成对于业绩的认识的过程当中,明显的可以能够清楚这个的底线的基础在于一种新的业绩的构成的基础。  回复  更多评论
  
# re: VC取得目录大小 2011-10-24 09:13 
构成新的业绩基础的前提条件在于在这样的过程当中自己应该不能够丢弃的东西是什么,这个不能够丢弃的东西在于运用什么样的一种方式获得对于业绩认可的过程,是国美体系在华强市场上面的杜小兵的基础的过程在于对于新的业绩的过程。  回复  更多评论
  
# re: VC取得目录大小 2011-10-24 09:15 
根据这样的一种认识,内心的一种认识底线实际上必须有一种基础认识,那就是在目前这样的一种业绩进行的过程当中,自己确实能够把握的东西在于在这个过程当中自己具备的一种达成业绩的实力,因为这个过程在于在一个礼拜的时间内获取或者更长的时间获取,或者获取不了,但是这个前提条件在于正常的离职状态的方式产生  回复  更多评论
  
# re: VC取得目录大小 2011-10-24 09:17 
新的业绩的构成就是如此简单,不过在现实的业绩体系里面实现这样的一种业绩过程显然不合适,毕竟这样的业绩的客观过程也不过是对于未来即使再争取也就是未来1年的业绩过程,因此现在的业绩必须是尽量在这样的一个前提条件下面遵循一种新的业绩构成的方法下面自己应该注意的一些问题  回复  更多评论
  
# re: VC取得目录大小 2011-10-24 09:19 
新的业绩的构成和在目前构成的业绩方式坦白的说是矛盾的,并且是在与现实当中有冲突的,仔细的说来这个业绩的组成的建立给予自己留下的空间在于其实必须给予自己有一种积极的安全的业绩状态的方式,即使现在认真的遵循未来一年的业绩造成的准备  回复  更多评论
  
# re: VC取得目录大小 2011-10-24 09:21 
新的业绩在这样的一个过程当中与自己本来内心里面需要办理的事情,比如现金状况,比如领导分析这些事务性分析是没有关系的,自己明确这些是对于业绩最大的尊重  回复  更多评论
  
# re: VC取得目录大小 2012-09-28 20:00 给个正脸
你好,我实现了下这个函数,根目录大小可以获取。。但是再深的目录获取到的大小为空。。不知道为什么啊。。对com编程不懂啊。。  回复  更多评论
  
# re: VC取得目录大小 2012-09-28 20:49 给个正脸
我的环境是,win7没有成功。。XP下是可以的。。  回复  更多评论
  
# re: VC取得目录大小 2012-10-15 15:01 胡满超
我在Win7上验证能工作呀,有问题可以给我发邮件humanchao_2@163.com@给个正脸
  回复  更多评论
  
# re: VC取得目录大小[未登录] 2014-03-21 18:40 xy
GetDiskFreeSpaceEx获得的是驱动器实际占用的空间,而下面代码获得的是目录大小,请问如何获得目录实际占用的空间? sinee3000@sina.com  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理