用SHGetFileInfo函数获取文件信息

Windows系统的shallapi函数

SHGetFileInfo函数

WINSHELLAPI DWORD WINAPI SHGetFileInfo(
    LPCTSTR pszPath,
    DWORD dwFileAttributes,
    SHFILEINFO FAR *psfi,
    UINT cbFileInfo,
    UINT uFlags
);


 SHGetFileInfo的定义
       

MSDN上的定义是:

 Retrieves information about an object in the file system,   such as a file, folder, directory, or drive root.  

 它在shellapi.h中定义,需要包含头文件#include <shellapi.h>

SHGetFileInfo()函数提供关于文件系统对象的信息。这个对象可以是文件,文件夹,目录或驱动器根。返回值代表相当多的返回状态,这与uFlags参数的设置有关。使用这个函数,可以期望:

确定可执行文件的目标平台(x64, Win32,Win16,MS-DOS)
获取各种有特色的文件图标(小的,大的,有关联重叠的,选中的,打开的)
读出其它显示属性,如文件类型(显示在探测器类型列上的简短描述)和显示名(出现在名字列上)
读出任何其它属性,可以是文件特有的,如,是否可以拷贝,移动,删除或重命名,是否它可以形成一个快捷方式,它是否有子文件夹,是否是共享的,是拖拽目标,或有附加的属性页,等等。
 

应该注意的是

在调用SHGetFileInfo()之前,必须使用 CoInitialize 或者OleInitialize 初始化COM,否则表面上能够使用,但是会造成不安全或者丧失部分功能。例如:如果不初始化COM,那么调用该函数就无法得到.htm/.mht/.xml文件的图标。

参数说明

WINSHELLAPI DWORD WINAPI SHGetFileInfo(
    LPCTSTR pszPath,
    DWORD dwFileAttributes,
    SHFILEINFO FAR *psfi,
    UINT cbFileInfo,
    UINT uFlags
);

pszPath          一个包含要取得信息的文件相对或绝对路径的缓冲。它可以处理长或短文件名。(也就是指定的文件路径)注[1]

dwFileAttributes          资料上说,这个参数仅用于uFlags中包含SHGFI_USEFILEATTRIBUTES标志的情况(一般不使用)。如此,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值