特殊文字「\」の変換の方法
VC++2005のMFCにてプログラムを作成しています。
CFileDialogにてテキストファイルを読み込み、
読込んだファイルパスの「\」を「\\」になるように変換したいのですが、
実装の方法が分かりません。
=====================================
例)C:\test\hoge.txt
⇒ C:\\test\\hoge.txt と変換する。
=====================================
下記にファイルパスをCstring型で読み込み、
char型に変換するまでのプログラムを記載します。
理想としては、char型配列の中に、
「C:\\test\\hoge.txt」のような変換後のファイルパスを
入れたいのです。
解決方法をご存知の方おられましたら、ご教示お願いできませんでしょうか。
【プログラム】
/* ファイルオープンダイアログを表示 */
CFileDialog ReadDlg( TRUE, NULL, "*.txt", OFN_HIDEREADONLY | OFN_FILEMUSTEXIST,
"txtファイル(*.txt)", this );
CString filepath;
if( ReadDlg.DoModal() == IDOK )
{
filepath = ReadDlg.GetPathName(); // ファイルのフルパス名を取得
}
CFile cfile;
CFileException ex;
if( !cfile.Open( filepath, CFile::modeRead , &ex ) )
{
AfxMessageBox( "ファイルを開くのに失敗しました" ); // エラーメッセージを表示
return;
}
char st[255] = "";
strcpy( st, filepath );
お礼
ご回答ありがとうございます。 GetLastError()では、「プロセスが使用中」という事しか分からないのではないでしょうか? 同様に、CFileのOpenの引数にCFileExceptionのポインタがあって、そこにエラー情報が格納 出来ますが、こちらでも「どのプロセスが使用中なのか」は判断出来ないと思っております。 やはりプロセスを特定するのは無理なのでしょうか?