>CString FileName = (C:\\Test\\%d\\,bInfo.pszDisplayName);
>CString cFName = (FileName+\\%d,FileData.cFileName);
カンマには文字列をつなげる機能ないよ。
それと%dって?
CString cFName = FileName + FileData.cFileName;
かな?
FileNameの最後に'\'が付いていない場合は
CString cFName = FileName + \\ + FileData.cFileName;
かな?
>Path情報を取得するにはどうすればよいでしょうか?
でしょうね。。
SHGetPathFromIDList(pIDList, path)
↑この一文を実行してエラーが出ていないのであれば…
CString cFName;
cFName.Forrm(%s\\%s, path, FileData.cFileName);
これでpathとファイル名が連結されて、cFNameに代入される筈です。
CStringクラスの説明をちゃんと読んでメンバー関数の中から
使えそうな関数を選定して色々試してみるとかして見たほうが良いと思うんですが。
現状だと分からないところは掲示板任せになっているような気がします。
cFName.Format(%s\\%s, path, FileData.cFileName);
かな?
pathの文字列の最後に'\'がついているかで処理を考える必要があるというのは
わかります?
必ず、この形で来ると言うのがわかっていれば処理も簡略化できますけど。
一度、MDSN等で調べて、結果、何処がわかりませんと言うように
ピンポイントで質問した方が有効なレスが付きやすいですよ。
>pathの文字列の最後に'\'がついているかで処理を考える必要があるというのは
>わかります?
SHGetPathFromIDListで取得したパスは、\で終わりません。
>>pathの文字列の最後に'\'がついているかで処理を考える必要があるというのは
>>わかります?
>
>SHGetPathFromIDListで取得したパスは、\で終わりません。
SHBrowseForFolderでドライブ直下を選択される可能性があるので
\で終わることもありますね。
>SHBrowseForFolderでドライブ直下を選択される可能性があるので
>\で終わることもありますね。
確かにそうでした、失礼致しました。
御本人もう見て無いかなー。
ポイントは、起こりうる状況を自分自身で何処まで把握できるかですよね。
で、はじめは当然全ての状況を把握できないでしょうから
うまくいかないケースが出てくる。
で、デバッガで追いかけたりして状況把握していくと
想定していないケースがある事に気づく。
この時点で他にも漏れてないかと考える事が必要になります。
もちろん最初からすべて想定できてればベストですけれど。
この辺は色んな物を作って見て経験積むしかないですねぇ。
頑張ってください。