短いファイル名から長いファイル名を取得する関数に、 関数 GetLongPathName() がある。 //********************************************************* // 短いファイル名(8.3形式)から長いファイル名を取得する関数 //********************************************************* BOOL GetLongPathName95( const char *ShortPath, char *LongPath, DWORD BufferSize ) { WCHAR wcShortPath[MAX_PATH+1]; ULONG chEaten; ITEMIDLIST *pidl; IShellFolder *pshf; IMalloc *pMalloc; if ( NOERROR != SHGetMalloc( &pMalloc ) ) return FALSE; // 失敗 if ( NOERROR == SHGetDesktopFolder( &pshf ) ) { MultiByteToWideChar( CP_ACP, 0, ShortPath, -1, wcShortPath, min(MAX_PATH,BufferSize) ); if ( NOERROR == pshf->ParseDisplayName( NULL, NULL, wcShortPath, &chEaten, &pidl, NULL ) ) { if ( SHGetPathFromIDList( pidl, LongPath ) ) // パス名を pidl より取得 { pMalloc->Free( pidl ); pshf->Release(); pMalloc->Release(); return TRUE; // 成功 } pMalloc->Free( pidl ); } pshf->Release(); } pMalloc->Release(); return FALSE; // 失敗 }//GetLongPathName95
以下に、短いファイル名と取得された長いファイル名との対応例を示す。
関連
・長いファイル名から短いファイル名(8.3形式)を取得する | |||||||||
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
>> Amazon.co.jp 『たまゆら童子』 へ
>> 楽天ブックス 『たまゆら童子』 へ