• ベストアンサー

ファイルパス操作について

いつもお世話になっております。 今回はパス操作についてお聞きしたいことが有ります。 例えば 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未使用です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

\\PcName\SharedFolder\... のような形式の場合を考えなくてよいのなら、ですが、 char *p = strchr( sz + 3, '\\' ); if( p != NULL ) { *p = '\0'; } とか。 別にスマートという感じでもないかもしれませんが、これくらいしかやりようがないような気がします。

iec1128
質問者

お礼

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

関連するQ&A