プロが教える店舗&オフィスのセキュリティ対策術

度々お世話になります。

C++でファイルパスからファイル名を求めるには
どのようにすればよいでしょうか?

例)
"C:\Program Files\Folder1\FileName.txt"という
文字列からFileName.txtだけを抽出したい

初心者で申し訳ないですが、ご教示ください。

A 回答 (3件)

WIN32 API の中に



GetFullPathName(lpszFile, cchPath, lpszPath, ppszFilePart)

というものがあり、ppszFilePartにファイル名のアドレスが戻ってきます。
    • good
    • 0
この回答へのお礼

GetFullPathNameでいけました!

ありがとうございます。

お礼日時:2006/12/11 18:00

★『WIN32 API』が分かりますか?


・分かるならば『PathFindFileName』、『PathStripPath』がありますよ。
・『PathFindFileName』は『LPTSTR PathFindFileName(LPCTSTR Path);』
→上記は、Path のファイル名位置をポインタ位置で返す。
・『PathStripPath』は『void PathStripPath(LPTSTR Path);』です。
→上記は、Path の文字列を書き換えて抽出する。

補足:
・strchr 関数で \ 文字を検索して最後に見つかった \ 文字の次がファイル名
 としてポインタで取得できます。→漢字文字の対応も考えると少し面等です。
 strchr 関数だけでは正しく検索されません。→漢字の2バイト文字に \ 記号
 が入っているためです。
・とにかく、文字列やポインタをお勉強しましょう。また、SJIS コードの構造
 などもお勉強しましょう。→検索してみてな。
    • good
    • 0

関数は忘れましたが、右から”\”までの数を取得して、


その数分、右から抜き出していました。

ヒントだけで m(_ _;)m ゴメン!!
    • good
    • 0

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