C++拡張子によるファイルアイコン、タイプの取得
3375 ワード
簡単に述べる
Windowsシステムでは、拡張子によってファイルの種類を区別します.txt(テキストファイル),.exe(実行可能プログラム),.zip(圧縮ファイル)では,拡張子に基づいて対応するファイルアイコン,タイプを取得する.
|著作権声明:一、二、三里、ブロガーの許可を得ずに転載してはならない.
ソースコード
以下に、拡張子に基づいて対応するファイルアイコン、タイプを取得します.
Windowsシステムでは、拡張子によってファイルの種類を区別します.txt(テキストファイル),.exe(実行可能プログラム),.zip(圧縮ファイル)では,拡張子に基づいて対応するファイルアイコン,タイプを取得する.
|著作権声明:一、二、三里、ブロガーの許可を得ずに転載してはならない.
ソースコード
以下に、拡張子に基づいて対応するファイルアイコン、タイプを取得します.
#include
#include
//
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;
}