C++根据扩展名获取文件图标、类型
来源:互联网 发布:男士护肤推荐 知乎 编辑:程序博客网 时间:2024/05/24 03:54
简述
在Windows系统中,根据扩展名来区分文件类型,比如:.txt(文本文件)、.exe(可执行程序)、*.zip(压缩文件),下面,我们来根据扩展名来获取对应的文件图标、类型。
- 简述
- 源码
源码
如下,我们根据扩展名来获取对应的文件图标、类型。
#include <windows.h>#include <iostream>// 获取文件图标HICON fileIcon(std::string extention){ HICON icon = NULL; if (extention.length() > 0) { LPCSTR name = extention.c_str(); SHFILEINFOA info; if (SHGetFileInfoA(name, FILE_ATTRIBUTE_NORMAL, &info, sizeof(info), SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_USEFILEATTRIBUTES)) { icon = info.hIcon; } } return icon;}// 获取文件类型std::string fileType(std::string extention){ std::string type = ""; if (extention.length() > 0) { LPCSTR name = extention.c_str(); SHFILEINFOA info; if (SHGetFileInfoA(name, FILE_ATTRIBUTE_NORMAL, &info, sizeof(info), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES)) { type = info.szTypeName; } } return type;}// 获取文件夹图标HICON folderIcon(){ std::string str = "folder"; LPCSTR name = str.c_str(); HICON icon = NULL; SHFILEINFOA info; if (SHGetFileInfoA(name, FILE_ATTRIBUTE_DIRECTORY, &info, sizeof(info), SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_USEFILEATTRIBUTES)) { icon = info.hIcon; } return icon;}// 获取文件夹类型std::string folderType(){ std::string str = "folder"; LPCSTR name = str.c_str(); std::string type; SHFILEINFOA info; if (SHGetFileInfoA(name, FILE_ATTRIBUTE_DIRECTORY, &info, sizeof(info), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES)) { type = info.szTypeName; } return type;}
0 0
- C++根据扩展名获取文件图标、类型
- Qt之QFileIconProvider(根据扩展名获取文件图标、类型)
- Qt之根据扩展名获取文件图标、类型
- Qt之QFileIconProvider(根据扩展名获取文件图标、类型)
- Qt之根据扩展名获取文件图标、类型
- 根据文件名或文件扩展名获取文件的默认图标
- 根据文件名或文件扩展名获取文件的默认图标
- 根据扩展名获取文件列表
- C#Winform开发,Listview根据文件路径或扩展名显示系统文件图标
- C#Winform开发,Listview根据文件路径或扩展名显示系统文件图标
- 获取与文件扩展名关联的图标
- 根据扩展名, 从注册表中取得文件的图标
- Delphi 中 listview 根据文件扩展名 设置系统图标
- Java获取文件的类型(扩展名)
- C#判断文件的真正类型,不根据扩展名判断
- 获取文件扩展名
- php获取文件扩展名
- java 获取文件扩展名
- Volley源码解析(三)——图片加载
- 深入理解JVM内幕
- [IMX6DL]CPU频率调节模式以及降频方法
- Spring事务失效的原因
- MFC改变编辑框背景、字体、颜色等
- C++根据扩展名获取文件图标、类型
- Android中使用aidl在进程间通信(IPC)
- 数据结构总结---树
- android-----View工作原理系列(一)
- 设计模式--spring源码中使用策略模式(Strategy Pattern)
- 如何判断程序是否重复运行的几种方法
- BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.
- 成员变量、类变量、局部变量的区别
- 原生下拉刷新SwipeRefreshLayout的使用