ショートカットファイルかどうかの判別

解説


 指定したファイルのファイル属性を取得してリンクだったらtrueを返す。


ソースコード


bool	Test()
{
	bool	ret;

	ret = IsShortcut(_T("c:\\tab5.html.lnk"));
	ret = IsShortcut(_T("c:\\tab5.html"));
	ret = IsShortcut(_T("c:\\aa.url"));

	return	true;
}


//
//	ファイルがショートカットかどうか
//
//	.lnkと.urlならtrueが返る
//
bool	IsShortcut(LPCTSTR pszFile)
{
	BOOL		fRet;
	SHFILEINFO	info;

	fRet = ::SHGetFileInfo(pszFile,0,&info, sizeof(SHFILEINFO),SHGFI_ATTRIBUTES);
	if(fRet == FALSE)
		return	false;

	return	(info.dwAttributes & SFGAO_LINK) ? true : false;
}

カテゴリー「VC++ TIPS」 のエントリー