- ベストアンサー
ファイルパス操作について
いつもお世話になっております。 今回はパス操作についてお聞きしたいことが有ります。 例えば 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未使用です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
\\PcName\SharedFolder\... のような形式の場合を考えなくてよいのなら、ですが、 char *p = strchr( sz + 3, '\\' ); if( p != NULL ) { *p = '\0'; } とか。 別にスマートという感じでもないかもしれませんが、これくらいしかやりようがないような気がします。
お礼
ご回答ありがとうございました。 重ねてAPIを呼ぶ方法にて実装いたしました。