ListViewでファイル名からファイルパスを取得する方法

このQ&Aのポイント
  • ListViewでファイル名からファイルパスを取得する方法を教えてください。
  • ファイル名変換プログラムを作成中で、ドラッグ&ドロップまたはフォルダ参照ダイアログからリストビューにファイルステータスをセットしました。しかし、ファイルパスの取得方法がわかりません。
  • ファイル名だけからファイルパスを取得する方法や、他の良い方法があれば教えてください。また、構造体を使用してファイルパスを保存し、実行時に参照する方法についてもアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

ListViewにSETしたファイル名からファイルパス取得方法

今、ファイル名変換プログラムを作成しています。 そこで、ドラッグ&ドロップまたはフォルダ参照ダイアログから、 ファイルステータスをリストビューにセットしました。 (ファイル名)EX) XXXX.txt #その時、ファイルパスは取得できています。 その後、実行する時にリストビューから ファイル名は、GetItemTextで取得できました。 しかし、ファイルパスは取得できません。 ファイル名だけから、ファイルパスを取得するには、 どのようにしたら良いのでしょうか?? ファイル名の変更は、CFileDialog::Renameで考えているので、。。 それとも、他に良い方法はございますでしょうか? また、構造体かなんか定義して、 リストビューへSETする時に構造体にパスを保存し、 実行時に参照して処理すべきでしょうか? ただ、リストビューで選択し「DEL」ボタンで、 削除できるようしてあるので、 この方法は、効率が悪いように思えて・・・ 環境は、Win2000、VC++6.0、MFCで作成しています。 以上、ご教授ください!

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

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

SetItemData()でフルパスへのポインタ(32ビット値)を関連付ければよいのでは? ポインタ自体をGlobalAlloc()でハンドルとして取得していれば削除時はGlobalFree()するだけで連動すると思います。

rewind
質問者

お礼

すいません。せっかく教えていただいたのですが、 どんな感じの流れになるのか理解できませんでした。 そこで、フォルダを選択した時にパスを エディットBOXにSETし、 変換時にファイルパス+ファイル名で利用することにしました。 リネームは、CFile::Renameで実現しました。 しかし、教えて頂いた方法でも今後出来る様にしたいと思います。 それまでの間に参考ソースなどの情報を見つける。 という事で今回は、解決(回避)?とし、締め切りとします。 回答ありがとうございました。

関連するQ&A

  • ファイルパスの取得について

    input type=fileを使ってファイルパスを取得し、そのパスをinput type=textの入力欄に表示させたいです。 ファイルの操作はしません。パスを取りたいだけです。 以下のようなことをやりたいです。 ・参照ボタンでファイルパスを取得 ・JSで(?)参照のボックスに値が入ったのを見てその値をtext欄にコピー ・text欄は手入力もしたいです ・text欄に値が入っていて参照で取得した場合は上書き ・参照ボックスは見た目上text欄で隠したいです(参照ボタンはtext欄の右にあるように) JS側とhtml側の記述方法を教えてほしいです。 よろしくおねがいします。

  • FileDialog オブジェクトでファイル名のみを取得

    FileDialog オブジェクトで返すオブジェクトを参照すると どうしてもファイルパスを取得する変数しか取得できません。 FileDialog オブジェクトで選択したファイルのファイル名のみを取得するにはどうしたらよいでしょうか。 ExcelVBAです。よろしくお願いします。

  • ファイル名に『?』が入ってるファイルを開くには?

    ファイル名に半角の『?』が入ってるファイルには アクセスできないでしょうか? opendir(DIR, "./dir"); @list = grep(!/^\./, readdir(DIR)); close(DIR); ディレクトリにあるファイルのリストを取得して、 そのリストに基づいて処理をしたいのですが… ファイル名に『?』が入ってるファイルは、 open(); rename(); ファイル演算子等の処理できません。 これをなんとかする方法はあるのでしょうか?

    • ベストアンサー
    • Perl
  • シェルスクリプト 自身のファイルパスを取得する方法

    基本的なことかもしれないのですが、教えて下さい。 シェルスクリプトをLinuxで作成しています。 シェルスクリプトを実行して、実行したスクリプトまでの絶対パスを取得したいのですが、方法がわかりません。 いろいろ調べて、 dirname $0 という方法で出来るような記述も見つけたのですが、$0ではスクリプト名を取得することしか出来ず、ファイルパスを取得することが出来ませんでした。 OS : Linux カーネル : 2.6 です。 他に必要な情報があれば教えて下さい。 よろしくお願いいたします。

  • Excelファイルが存在するPC名が取得できません

    Excelファイル自身のファイルパスはThisWorkbook.FullNameURLEncodedで取得できました。しかし、Excelファイルが存在するPC名が取得できません。どうしたらよいでしょうか。

  • ファイル名のリスト取得について

    windowsで任意のフォルダにあるファイル名のリストを取得する方法を教えて下さい。 例えば*.ecdのファイルリストを取得するとします。 よろしくお願いします

  • 選択したファイル名を取得する方法について

    セレクトボックスに複数のファイル名を表示させています。 表示されている中から1つのファイルを選択した状態で 実行ボタン等を押した時に選択されているファイル名を 取得させたいのですがそれは可能でしょうか?

    • ベストアンサー
    • HTML
  • シェルスクリプト 自身のファイルパスを取得する方法2

    シェルスクリプトで、自身のファイルパスを取得する方法を検索したところ、下記ページへとたどり着きました。 ▼おしえて!HOME'Sくん シェルスクリプト 自身のファイルパスを取得する方法 http://oshiete.homes.jp/qa2419248.html ▼教えて?Coneco shシェルで実行パスではなくファイルのパスを取得する方法 http://oshiete.coneco.net/qa2866868.html しかし、それぞれのページに掲載されていた ${0%/*} や ${1%/*} の意味がどうしてもわかりません。(一応、bashとかで検索してみたりはしました) そこで、下記内容について、教えてください! ・この0というのは、$0のことなのでしょうか。 ・この%は、正規表現か何かなのでしょうか。 ・この/は何を指しているのでしょうか? ・この*は、どの部分の1文字以上を指しているのでしょうか? 以上、よろしくお願いしますッ!

  • ファイル名のみを取得するには?

    Sub 取得() MsgBox ActiveWorkbook.Name End Sub を実行すると 「エクセル.xls」 と取得されますが 拡張子を除いたファイル名だけを取得するにはどうすればいいでしょうか? 「エクセル」だけを取得したいです。 よろしくお願いします。

  • ブラウザからファイルパスを取得するには

    現在Webブラウザからローカルにあるファイルのパスを取得したいと 考えています。 イメージとしては、アップロードのときのように、参照ボタンを押すと ダイアログが開き、そこからファイルを選択すればそのファイルのパスが 取得できるようなことを考えています。 ファイルアップロード時にファイルのパスを取得できることは知っているのですが、アップロード出来るサイズの制限を越えるものもあり、 できるだけアップロード処理を行わずに、ファイルのパスだけを取得できる 方法がないか探しております。 ご存知の方がいらっしゃいましたら、教えていただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう