例えば「現在アクセスしているホームページへのショートカットを自動的にお気に入りに登録するアプリケーションを作りたい」などの場合、ホームページのタイトルをそのままファイル名として使うと、タイトル内にファイル名として禁止されている文字が入っている場合に誤動作する危険がある。
このようなときにファイル名に使いたい文字列をこの関数に通すと自動的に禁止された文字列が全角文字に置換されるので誤動作の可能性を減らすことができる。
#include "atlstr.h"
//
//ファイル名として禁止されている文字を変換
//
void TranslateToSafeFileName(CAtlString& strSafeFileName)
{
//禁止半角を全角文字に変換
strSafeFileName.Replace(_T("\\"),_T("¥"));
strSafeFileName.Replace(_T("/"),_T("/"));
strSafeFileName.Replace(_T("*"),_T("*"));
strSafeFileName.Replace(_T(":"),_T(":"));
strSafeFileName.Replace(_T("?"),_T("?"));
strSafeFileName.Replace(_T("<"),_T("<"));
strSafeFileName.Replace(_T(">"),_T(">"));
strSafeFileName.Replace(_T("\""),_T("”"));
strSafeFileName.Replace(_T("|"),_T("|"));
}
void Test(void)
{
CAtlString strFile;
strFile = _T("Googleへのショートカット (http://www.google.co.jp/)");
TranslateToSafeFileName(strFile);
::MessageBox(NULL,strFile,_T(""),MB_OK);
}
