拡張子のファイル名 – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

[解決済] 拡張子のファイル名

固定ページ 2 / 2

wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

>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;
かな?


返信引用
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

>Path情報を取得するにはどうすればよいでしょうか?
でしょうね。。

SHGetPathFromIDList(pIDList, path)
↑この一文を実行してエラーが出ていないのであれば…

CString cFName;
cFName.Forrm(%s\\%s, path, FileData.cFileName);
これでpathとファイル名が連結されて、cFNameに代入される筈です。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

CStringクラスの説明をちゃんと読んでメンバー関数の中から
使えそうな関数を選定して色々試してみるとかして見たほうが良いと思うんですが。
現状だと分からないところは掲示板任せになっているような気がします。

cFName.Format(%s\\%s, path, FileData.cFileName);
かな?
pathの文字列の最後に'\'がついているかで処理を考える必要があるというのは
わかります?
必ず、この形で来ると言うのがわかっていれば処理も簡略化できますけど。

一度、MDSN等で調べて、結果、何処がわかりませんと言うように
ピンポイントで質問した方が有効なレスが付きやすいですよ。


返信引用
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

>pathの文字列の最後に'\'がついているかで処理を考える必要があるというのは
>わかります?

SHGetPathFromIDListで取得したパスは、\で終わりません。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>>pathの文字列の最後に'\'がついているかで処理を考える必要があるというのは
>>わかります?
>
>SHGetPathFromIDListで取得したパスは、\で終わりません。

SHBrowseForFolderでドライブ直下を選択される可能性があるので
\で終わることもありますね。


返信引用
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

>SHBrowseForFolderでドライブ直下を選択される可能性があるので
>\で終わることもありますね。
確かにそうでした、失礼致しました。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

御本人もう見て無いかなー。

ポイントは、起こりうる状況を自分自身で何処まで把握できるかですよね。
で、はじめは当然全ての状況を把握できないでしょうから
うまくいかないケースが出てくる。
で、デバッガで追いかけたりして状況把握していくと
想定していないケースがある事に気づく。
この時点で他にも漏れてないかと考える事が必要になります。
もちろん最初からすべて想定できてればベストですけれど。

この辺は色んな物を作って見て経験積むしかないですねぇ。
頑張ってください。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました