パスの最後にバックスラッシュ("\")を追加するには
すでにパスの最後にバックスラッシュ"\"があるかどうかを確認しないでも追加するには、Shellwapi(シェルワッピ)のPathAddBackslash () APIがオススメです。
ANSIでも安全にバックスラッシュ"\"を間違いなく追加してくれます。Shellwapiは、Windows 98以降で実行できます。
※ shlwapi.hのインクルード、shlwapi.libのリンクが必要です。
■■■ addbackslash プロジェクト ■ main.cpp
#include <windows.h>
#include <tchar.h>
#include <shlwapi.h>
#include <string>
std::basic_string < _TCHAR > AddBackslash () ( const _TCHAR *pszPath )
{
ASSERT ( NULL != pszPath );
// '\\'と'\0'を追加する分も必要
_TCHAR *pszBuf = new ( std::nothrow ) _TCHAR[ lstrlen ( pszPath ) + 2 ];
lstrcpy ( pszBuf, pszPath );
PathAddBackslash ( pszBuf );
std::basic_string < _TCHAR > strResult;
strResult = pszBuf;
delete[] pszBuf;
return strResult;
}
int WINAPI _tWinMain ( HINSTANCE hThisInstance,
HINSTANCE,
_TCHAR *,
int )
{
const _TCHAR cszPath[] = _TEXT ( "c:\\表\\表表表" );
std::basic_string < _TCHAR > strAddedBackslash;
strAddedBackslash = AddBackslash ( cszPath );
MessageBox ( NULL,
strAddedBackslash.c_str (),
_TEXT ( "確認" ),
MB_OK );
return 0;
} |
|