- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名をチェックする方法。)
ファイル名をチェックする方法
このQ&Aのポイント
- ファイル名をチェックする方法。PCからRS-232Cケーブルを使って端末機器のファームウェア更新を行う際、複数のバイナリファイルがある場合に間違って別のバイナリを選択してしまわないようにする方法についての質問です。
- 現在、PCからRS-232Cケーブル経由で端末機器のファームウェア更新の機能でバイナリファイルを選択してファームウェアをダウンロードする機能があります。ただし、同じフォルダ内にbinファイルが複数ある場合、誤って別のバイナリを選んでしまうと、端末機器が復旧できなくなる問題が発生します。
- ファイル名をチェックする方法についての質問です。特に、ファイルが'TEST.bin'という名前でない場合、条件内の処理を実行しないようにする方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
環境くらいは書いた方がいいかと。 # 過去の質問から探してきやがれ。とかいうならまぁ、かまいませんが。 ボーランドらしいので… http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/SysUtils_ExtractFileName.html とかで、フルパス名からファイル名(と拡張子)がとれませんかね?
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1626/5665)
回答No.2
>例えばですが、dlgOpen->FileNameのファイルパスが”C:\mywork\myproject\test.bin”の場合 ・先頭がアルファベット + ':'であればそれはドライブ名なので取り除く( \mywork\myproject\test.bin) ・パスは '\' で区切られている(mywork myproject test.bin) ・ファイル名になりえるのは一番最後(test.bin) パスがどの様に構成されているのかを把握してればわかると思いますが。
質問者
お礼
回答頂きありがとうございます。文字列の処理は難しいですね・・・
- wormhole
- ベストアンサー率28% (1626/5665)
回答No.1
fopenする前にファイル名を調べればよいだけでは?
質問者
お礼
回答頂きありがとうございます。 例えばですが、dlgOpen->FileNameのファイルパスが”C:\mywork\myproject\test.bin”の場合に、test.binかどうかの判定で他のファイルパスは無視するようなプログラムをどのように書いたら良いか教えて頂けないでしょうか。 どうぞ、よろしくお願い致します。
お礼
回答頂きありがとうございます。 String test = AnsiString(dlgOpen->FileName).c_str(); test = ExtractFileName(test); これでtestに文字列の"test.bin"を取得できました。助かります。