• 締切済み

SHGetPathFromIDList によるパス取得

Oh-Orangeの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス  SHGetFolderLocation  SHGetSpecialFolderLocation  SHGetSpecialFolderPath  で検索して下さい。  http://www001.upp.so-net.ne.jp/yamashita/doc/shellfolder.htm  http://hp.vector.co.jp/authors/VA023539/tips/shell/002.htm

参考URL:
http://msdn.microsoft.com/en-us/library/bb762204(VS.85).aspx
pesurin
質問者

お礼

すばやい回答ありがとうございます。 紹介いただいたサイトを読み、もう一度コードを確認してみたところ以下のことがわかりました。 私が参考にしたサイトの項目(記述し忘れてました) 窓プログラミング エクスプローラーを作る 1 - 5 で紹介されているコードではファイル情報をツリーリストとして表示するために、lpItemIDL とlpItemAllIDLと変数名がつけられた 2つの LPITEMIDLIST をツリーアイテムとして管理しています。 私は前者の lpItemIDL に相当する変数を作成しこれからパス情報を取得しようとしていたのですが、lpItemAllIDL に相当する変数を作成しこちらを使用することでドライブレターから始まるパス情報をとることができるようになりました。 重要な部分だったので助かりました。

関連するQ&A

  • そのファイルのパスって取得できますか?

    ExcelでVBAを書いているんですが、たとえば、マイドキュメントとかのパスって、調べることが出来ますよね? そういった感じで、自身がどこにいるかも取得する方法ってあるのでしょうか? もちろん、ファイルを指定するようなダイアログを出せば出来るんですが、今回のは、そういったことじゃなくて、ユーザ側には何の操作もさせないことを考えています。 最終的にやりたいことは、同じディレクトリ内のファイルとの同期なんですが、やはり、ファイルの位置は、フルパスで指定しないとダメなんでしょうか。 どなたか、よろしくお願い致します。

  • フォルダ選択と取得したパスの表示

    どうしてもわからないのでご教授お願いします。 コマンドボタンを使用して、フォルダの選択のダイアログを表示し、選択したフォルダのパスを取得することはできたのですが、そこから取得したパスを任意のセルに表示させたいです。 どうすれば表示させることができるでしょうか。 Private Sub commandbutton1_Click() Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then MsgBox myPath.Items.Item.Path Set Shell = Nothing Set myPath = Nothing End Sub ご教授宜しくお願いします。

  • Access2003 VBA でフォルダ参照ダイアログについて

    Access2003 VBA でフォルダ参照ダイアログを開いて、ダイアログで選択されたパスを元画面に渡すっていう処理がありますが、フォルダ参照ダイアログを開くため(ファイル参照ダイアログではない)、どうすればいいでしょうか。簡単なソースがあればぜひ教えてください。 ※インタネットで調べ、SHBrowseForFolderというAPIを使う資料がありますけど、結構複雑な使い方なのでもっと簡単な方法(ActiveX??)を教えてもらいたいのです。

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

    いつも参考にさせて頂いています。 掲示板をファイル操作にて作成しようと思っています。 初歩的な質問かもしれませんが宜しくお願いします。 フォルダ構成が下記の場合、「confフォルダのtest.txt」を読み込む際のパスはどのように取得もしくは指定すれば良いでしょうか? プロジェクトフォルダ  |  |----JavaSource ←.javaファイルを格納  |----WebContent      |----css      |----js      |----WEB-INF          |----conf ←このフォルダ内のtest.txt          |----jsp          |----lib ファイルの読み込みはBufferedReaderクラスを使うと効率よく読み込めるとネットで記述があったのでそれを使おうと思ってます。 BufferedReader br = new BuffferedReader(new FileReader("test.txt") ); みたいな感じで読み取れると思ってますが合ってますでしょうか? ("test.txt"の箇所に取得した(絶対又は相対)パスが入ると思ってます。) 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • パスの件

    autoexec.batの記述です。 パラメータが多いとエラーになってしまいました。 @C:\PROGRA~1\GRISOFT\AVG6\bootup.exe REM [Header] @ECHO OFF loadhigh c:\windows\COMMAND\nlsfunc.exe c:\windows\country.syspath path %path%;C:\MASM32\BIN 参考にしているURLです。 http://hp.vector.co.jp/authors/VA014520/asmhsp/chap1.html

  • htaファイルに渡したパスを取得するには。

    vbsファイルを開くと「ファイル選択」ダイアログを表示してテキストファイルを選択するとそのファイルのパス先をhtaファイルのSPANタグに渡して表示するところまで作成する事ができました。このSPANタグに表示したパスをVBScriptで取得する事が解らず、困っています。 どのようにすればhtaファイルに渡したパスをVBScriptで取得する方法をご存知の方がいましたらアドバイスいただけませんでしょうか。 何卒、宜しくお願いします。

  • パス名の変換

    フォルダ選択ダイアログで取得したパス名 ex.c:\program files を関数で使おうとすると c:\\program files に直すようだと分かったのですが 何かいい関数、もしくは方法はないでしょうか? よろしくお願いします

  • ExcelのVBAでフォルダ名の取得

    お世話になります。 タイトルのままなんですが、 VBAでフォルダのフルパスを取得したいのですが出来るでしょうか? ファイルのフルパスは FN = Application.GetOpenFilename で取得出来たのですが 同じ様に ダイアログから選択する様に出来るでしょうか?

  • デスクトップ上の全ファイル取得

    開発環境 WindowsXP,SP2 Visual Studio 2005 VC++ SDK SHGetFolderPath()でデスクトップのパスを取得した後、FindFirstFileによってデスクトップ上の全ファイル及びディレクトリの名前を取得したいと考えております。 SHGetFolderPathで取得したパスは、 C:\Documents and Settings\...\デスクトップ となっており、この文字列をwsprintfで次のように加工しました。 wsprintf(output,"%s\\*.*","C:\Documents and Settings\...\デスクトップ"); このoutputをFindFirstFile,FindNextFile,FindCloseを組み合わせたプログラムでディレクトリ内の全てのファイル及びディレクトリの名前を取得しています。 このプログラムは普通(?)のディレクトリでは有効で、こちらの期待通りの動きをしてくれるのですが、取得したデスクトップのパスを渡すと、デスクトップフォルダ内にはデスクトップという名前のフォルダしかないと出力されます。以下のような感じです。 調査ディレクトリ:C:\Documents and Settings\...\デスクトップ 調査結果 "C:\Documents and Settings\...\デスクトップ"ディレクトリ内のファイル及びディレクトリ:デスクトップ これはWindowsの仕様の動作なのでしょうか。 特殊フォルダであるデスクトップは、FindFirstFileでは調査出来ないのでしょうか? 他に方法はありますか? どうか教えてください。

  • エクセル マクロで任意のフォルダのパスを取得する方法

    エクセルを使用して、任意のフォルダを指定し、その中に入っているファイル(jpg画像ファイル)の名前を取得、画像をエクセルシート内に貼り付けていくというマクロを作成しています。 今回質問はその前段の部分、使用者が任意のフォルダを指定して、そのフォルダのパスをマクロが取得するというところでてこずっています。 現時点では、画像が入っているフォルダのウィンドウのアドレスバーに入っているパスを、コピぺでフォームに貼り付けさせてます^^; それだと使用者にウインドウにアドレスバーを表示するには…みたいなところから説明しなければならないのでユーザーライクではありません。 そこで、通常良くあるような、フォルダやファイルを指定させるダイアログを出したり、もしくはフォームに任意のフォルダをドラッグ&ドロップしたりすることで、任意のフォルダのパスを取得できたらな、と思っています。 そのような方法(もしくはより良い方法)を実現するマクロの組み方をご存知でしたら、教えてくださいm(__)m 宜しくお願いします。