IShellFolder によって、ある LPCITEMIDLIST から SHGetPathFromIDList を利用してパスを取得しようとしているのですが、意図したパス情報が返されないので困っています。
詳細
SHBrowseForFolder で呼び出せるフォルダ選択ダイアログのような フォルダ選択画面を作成しています(諸事情がありフォルダ選択ダイアログが使えません)。
そこで次のサイト
http://hp.vector.co.jp/authors/VA016117/winsdk.h …
を参考に、ユーザーが選択したフォルダのパスをSHGetPathFromIDList を呼び出して取得しようとしているのですが、なぜか例えば "D:\test" は "C:\Documents And Setting\user_name\デスクトップ\test" として返されるため、次の段階のディレクトリのオープン処理(FindFirstFile)に失敗してしまいます。
SHBrowseForFolder のようにドライブレターから始まるパスを取得するにはどうすればいいのでしょうか。
No.1ベストアンサー
- 回答日時:
★アドバイス
SHGetFolderLocation
SHGetSpecialFolderLocation
SHGetSpecialFolderPath
で検索して下さい。
http://www001.upp.so-net.ne.jp/yamashita/doc/she …
http://hp.vector.co.jp/authors/VA023539/tips/she …
参考URL:http://msdn.microsoft.com/en-us/library/bb762204 …
すばやい回答ありがとうございます。
紹介いただいたサイトを読み、もう一度コードを確認してみたところ以下のことがわかりました。
私が参考にしたサイトの項目(記述し忘れてました)
窓プログラミング
エクスプローラーを作る 1 - 5
で紹介されているコードではファイル情報をツリーリストとして表示するために、lpItemIDL とlpItemAllIDLと変数名がつけられた 2つの LPITEMIDLIST をツリーアイテムとして管理しています。
私は前者の lpItemIDL に相当する変数を作成しこれからパス情報を取得しようとしていたのですが、lpItemAllIDL に相当する変数を作成しこちらを使用することでドライブレターから始まるパス情報をとることができるようになりました。
重要な部分だったので助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Windows 10 コマンドプロンプトの使い方 1 2022/10/13 14:43
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Illustrator(イラストレーター) Illustrator アンカーポイント選択について 3 2023/01/30 12:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでパワーシェルを実行したい...
-
【VB.NET】App.configにファイ...
-
初心者powershellのPS1ファイル...
-
SaveAsの保存先について
-
エクセルvbaでdocuworksprinter...
-
【VBA】ExcelマクロでCSVファイ...
-
C#でのProcess.Startと変数path
-
xcopyコマンドの進行状況を表示...
-
パスワード保護されたExcelファ...
-
FolderBrowserDialogについて-2
-
EXCEL(VBA)で指定フォルダ内の...
-
バッチファイル 二つ上のディ...
-
SendKeysステートメント
-
VBAで、VBのapp.pathと同じ機能...
-
エクセルVBAで一つ上の階層...
-
AccessからExcel最小化
-
エディットボックスの数値をテ...
-
開いているファイルを削除し、...
-
DOSのバッチファイルでカレント...
-
Excel 相対パス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
xcopyコマンドの進行状況を表示...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
エクセルのマクロで特定フォル...
-
パスワード保護されたExcelファ...
-
ExcelVBAの使い方 ¥の使い方...
-
開いているファイルを削除し、...
-
SaveAsの保存先について
-
初心者powershellのPS1ファイル...
-
fopenでのパス指定
-
VBA★PDFをPDFアプリで印刷し...
-
【Excel VBA】Power Qurry のソ...
-
指定したフォルダ内の最新ファ...
-
A列に記載されているフォルダ...
-
ExcelのVBAで上書き保存を確...
おすすめ情報