2012年6月14日木曜日

プログラミング・メモ

パス名から拡張子を抽出する。

・MSDN(英語)には引数pszPathの最大長はMAX_PATHと書いてある(と思う)が、下記の動作確認では304文字のパス名でも正常に動作した。
・文字列の末尾から最初に見つかった'.'のアドレスを返す仕様だと思う。

// サンプルソース(C++)
LPCTSTR pszPath = _T('C:\\Dir1\\FileName.Ext');
LPTSTR pszResult = ::PathFindExtension( pszPath );

// 動作確認: Windows XP Professional SP3 日本語

Input  : 'C:\Dir1\FileName.Ext'
pszResult : '.Ext'

Input  : 'C:\Dir1\FileName.'
pszResult : '.'

Input  : 'C:\Dir1\FileName'
pszResult : ''

Input  : '...'
pszResult : '.'

Input  : '1234567890123456789012345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890123456789012345678901234567890
1234567890123456789012345678901234567890123456789012345678901234567890.ext'
pszResult : '.ext'

Input  : '(null)' 補足:引数はNULL
pszResult : NULL

 

Blogger news

Pageviews past week

Blogroll

About