易语言寻找c盘文件夹,易语言SHGetFileInfoA获取文件信息

SHGetFileInfoA是shell32.dll里的一个函数,用来获取文件的文件系统对象的信息。这个对象可以是文件,文件夹,目录或驱动器根。

https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shgetfileinfoa

SHGetFileInfoA原型

DWORD_PTR SHGetFileInfoA(

LPCSTR pszPath,

DWORD dwFileAttributes,

SHFILEINFOA *psfi,

UINT cbFileInfo,

UINT uFlags

);

取文件信息SHGetFileInfoA

.版本 2

.DLL命令 取文件信息_, 整数型, "shell32.dll", "SHGetFileInfoA", , SHGetFileInfo

.参数 文件路径, 文本型, , pszPath

.参数 文件属性, 整数型, , dwFileAttributes

.参数 文件信息结构, 文件信息_, , psfi

.参数 文件信息结构大小, 整数型, , cbFileInfo

.参数 信息标志, 整数型, , uFlags

数据类型 SHFILEINFO结构定义如下:

typedef struct _SHFILEINFO {

HICON hIcon; //文件的图标句柄

int iIcon; //图标的系统索引号

DWORD dwAttributes; //文件的属性值

TCHAR szDisplayName[MAX_PATH]; //文件的显示名

TCHAR szTypeName[80]; //文件的类型名

} SHFILEINFO;

.版本 2

.数据类型 文件信息_, , SHFILEINFO

.成员 图标句柄, 整数型, , , hIcon

.成员 图标索引, 整数型, , , iIcon

.成员 图标属性, 整数型, , , dwAttributes

.成员 显示名称, 字节型, , "260", szDisplayName

.成员 类型名称, 字节型, , "80", szTypeName

易语言调用

我们先在C盘c:\autoexec.bat建立一个文件。

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮_取文件信息_被单击

.局部变量 局部_文件信息, 文件信息_

CoInitialize (0)

取文件信息_ (“c:\autoexec.bat”, 0, 局部_文件信息, 352, 位或 (#SHGFI_DISPLAYNAME, #SHGFI_TYPENAME))

列表框_运行结果.清空 ()

列表框_运行结果.加入项目 (“文件名:” + 子程序_字节数组到文本 (局部_文件信息.显示名称), )

列表框_运行结果.加入项目 (“文件类型: ” + 子程序_字节数组到文本 (局部_文件信息.类型名称), )

.子程序 子程序_字节数组到文本, 文本型

.参数 参数_文本, 字节型, 数组

.局部变量 局部_计次变量, 整数型

.局部变量 局部_临时文本, 文本型

.计次循环首 (取数组成员数 (参数_文本), 局部_计次变量)

局部_临时文本 = 局部_临时文本 + 字符 (参数_文本 [局部_计次变量])

.计次循环尾 ()

返回 (局部_临时文本)

CoInitialize

在调用SHGetFileInfo()之前,必须使用 CoInitialize 初始化COM,否则表面上能够使用,但是会造成不安全或者丧失部分功能。

.版本 2

.DLL命令 CoInitialize, 整数型, "ole32", "CoInitialize"

.参数 pvReserved, 整数型, , 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值