牛、豚、鶏、どれか一つ食べられなくなるとしたら?

いつもお世話になっております。

今回はパス操作についてお聞きしたいことが有ります。
例えば
C:\hoge1\hoge2\hoge3\hoge.txt
のようなパスが合ったとして、ファイル名を取りたいときは
::PathRemoveFileSpecで可能ですが、
C:\hoge1まで切り出したいとき、
現在上記APIを3度呼んで実装しています。

char sz = {"C:\hoge1\hoge2\hoge3\hoge.txt"};
::PathRemoveFileSpec(sz);
::PathRemoveFileSpec(sz);
::PathRemoveFileSpec(sz);
これでsz=C:\hoge1になる

このような感じで実現は出来るのですが、スマートでは無いと感じております。
もっといい方法がありましたら教えてください。
よろしくお願いします。

環境は window7 professional
visual studio 2008 MFC未使用です。

A 回答 (1件)

\\PcName\SharedFolder\...



のような形式の場合を考えなくてよいのなら、ですが、

char *p = strchr( sz + 3, '\\' );
if( p != NULL ) {
*p = '\0';
}

とか。
別にスマートという感じでもないかもしれませんが、これくらいしかやりようがないような気がします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
重ねてAPIを呼ぶ方法にて実装いたしました。

お礼日時:2011/06/13 16:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!