在VC中使用FileSystemObject

VC++中的获取当前路径实用技术 本文还有配套的精品资源,点击获取 简介:在VC++中,获取当前工作目录或程序执行路径是编程的常见需求,对于文件操作、资源定位或动态链接库创建尤其重要。本文详细介绍了几种在VC++中实现获取当前路径的常用函数及其使用方法。包括但不限于 GetModuleFileName() 用于获取进程或模块路径, GetCurrentDirectory() 用于... 阅读详情

今天在论坛里遇到这样一个问题,如果不用递归的方式得到一个文件夹的大小?

第一反应就是使用FSO可以通过folder.size属性得到,终于在网上找到

How to use scrrun.dll in VisualC++?
http://www.xtremevbtalk.com/archive/index.php/t-230203.html

虽然并未完成,但基本框架已经出来

使用方法大致如下

1.通过OLEView得到idl,并作相应修改
2.通过midl得到头文件
3.include该头文件通过CoCreateInstance调用

添加代码如下:

#include "scrrun.h"

#define SAFE_RELEASE(o) if(o){o->Release();o=NULL;}
int GetFolderSize(BSTR FolderPath)
{
 IFileSystem *FileSystem=NULL;
 IFolder *Folder=NULL;
 LONG nRet = -1;
 HRESULT hr;
 hr = CoCreateInstance(CLSID_FileSystemObject,NULL,CLSCTX_INPROC_SERVER,IID_IFileSystem, (void**) &FileSystem);
 if(FAILED(hr))goto quit;
 
 hr = FileSystem->GetFolder(FolderPath,&Folder);
 if(FAILED(hr))goto quit;
 if(Folder)
 { 
  VARIANT vt={0};
  Folder->get_Size(&vt);
  nRet = vt.lVal;
 }
quit:
 SAFE_RELEASE(Folder);
 SAFE_RELEASE(FileSystem);
 return nRet;
}

调用方法

GetFolderSize(L"c://windows//system32");

参考文献

Calling Visual Basic ActiveX DLLs from Visual C++
http://www.codeproject.com/com/vb_from_vc.asp

Component Object Model API
http://www.catalyst.com/support/help/internetmail/index.html?page=html%2Fmail%2Fguide%2Fobjectmodel.html

注:该函数暂不适宜超过2G的文件夹,但理论上应该可以

include头文件 c c++头文件集合 立即下载

相关推荐

获取COM接口CoCreateInstance启动的进程PID

CoCreateInstance是一个让COM变得更加有趣和可用的工具。然而,它并没有让你知道一个非常重要的信息——新启动的进程的id。也没有其他的API可以告诉我们这一点。这就是微软所谓的设计。 当我们启动像Excel或者PowerPoint时,问题就出现了。当你需要它们提供服务的时候,他们做得很好。但去尝试让他们退出,你就要开始抓狂了。一些Excel流程是不可能消失的。然后你就会明白为什么你...

其疾如风 其徐如林 侵略如火 不动如山 1720

VC 遍历文件夹所有文件名,代码简短。下面函数是获取YY账号,(对xml的解析操作)

#include <filesystem> #include <string> #include <vector> #include "tinyxml.h" using namespace std; using namespace std::tr2::sys; string ReadData(const char* str); BOOL  DirectoryL...

奔流的江水 349

c++17文件系统

在编程世界中,目录操作是不可或缺的一部分。无论你开发什么你都需要与文件系统(Filesystem)进行交互。C++ Filesystem库提供了一种标准化和跨平台的方式来进行这些操作。

FairLikeSnow的博客 599

VBS教程:创建txt文件

关于在C,C++里面我们学习了创建文件的方法,非常之繁琐,然而在VBS里卖弄却异常的简单和方便,那么让我们看一看怎么做到的,看代码dim fso,testfile set fso = createobject("scripting.filesystemobject") ‘指明一个对象 set testfile = fso.createtextfile("d:\nice.txt",true) ’指明

阳光心态,健康人生的博客 1万+

关于automation服务器不能创建对象

周日值班,用VC遇到了如上问题,在网上找了找,终于解决了,方法如下:Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll

懒人的技术笔记 2034

通过FileSystemObject在网页中操作本地文件

Javascript是网页制作中离不开的脚本语言,依靠 它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等 高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用Javascript语言进行文件操作。 一、功能实现核心:FileSystemObject 对象

HeartMark's notes 827

FileSystemObject对象【1】:Drive对象和Drives集合

文章目录1、什么是Scripting.FileSystemObject对象2、创建FSO对象的两种方法2.1、前期绑定2.2、后期绑定2.3、优缺点比较3、Drives3.1、Count3.2、Item4、Drive对象4.1、AvailableSpace属性4.2、FreeSpace属性4.3、DriveLetter属性4.4、DriveType属性4.5、FileSystem属性4.6、IsR...

1006

javascript ActiveXObject FileSystemObject 对象,创建、复制、删除、读取文件等

Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用Javascript语言进行文件操作。一、功能实现核心:FileSystemObject ...

anwenzhao0749的博客 487

CreateObject Scripting.FileSystemObject和Scripting.Dictionary

创建两个对象Scripting.FileSystemObject和Scripting.Dictionary都提示下面的错误:Server   对象,   ASP   0177   (0x800401F3)     无效的类别字符串      检索了半天,最终的问题在于:1 没有注册组件,注册如下:RegSvr32 %windir%/SYSTEM32/scrrun.dll2 权限问题

Think Globally, Act Locally 2409

Javascript FileSystemObject 读取/创建本地文件及目录文件夹的方法

注:以下操作只在IE下有效!     Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用Javascript语言进行文件操作。 一、功能实现

郎涯技术 1万+

VBS递归删除文件及文件夹(默认是删除VC的临时文件的配置)

VBS递归删除文件及文件夹(默认是删除VC的临时文件的配置) '可配置项 isDeleteFile=True filterToDelete=".obj;.ilk;.tlb;.tli;.tlh;.tmp;.rsp;.pgc;.pgd;.ncb" isDeleteSpetialFolder=False filterToDeleteFolder="debug;release" '

乔成磊的专栏 1832

javascript读取本地文件和目录方法详解

JavaScript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用Javascript语言进行文件操作。

bjzhang75的博客 5674

JS读取本地文件及目录的方法

JS读取本地文件及目录的方法

qq_44894516的博客 2万+

js操作文件

    Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用Javascript语言进行文件操作。            一、功能实现核心:FileSys

8914

JavaScript操作文件

通过以上对FileSystemObject的各种对象、属性和方法的介绍和示例,相信你已经对如何使用JavaScript语言在页面中操作驱动器、文件和文件夹有了清晰的认识。但是上述提及的例程都非常简单,要全面、灵活地掌握JavaScript文件操作技术,还需要大量的实践练习。而且还有一点提醒大家,由于涉及到在浏览器中进行文件读写这样的高级操作,对于默认的浏览器安全级别而言,在代码运行前都会有一个信息提示。

ShuiMoYiYa的博客 305
上一篇: 横秋扫盲系列(4): CRichEditCtrl 超文本编辑(MSN/QQ常用控件) -- 2005-08-28 21:13:15
下一篇: MSDN's bug(2): DlgDirListComboBox
vcmute
博客等级 码龄23年 33粉丝 31原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值