Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


【Delphi】特殊フォルダのパスを取得する

デスクトップやマイドキュメントなどのフォルダは
ログインユーザーなどによって異なりますが、
シェル関数と呼ばれるもので特殊フォルダのパスを取得することが可能です。

実際に利用する際はuses節にWinapi.ShlObj(XE以前はShlObj)を追加し、
SHGetSpecialFolderPath関数を呼び出すだけです。
(※末尾の「\」は付きませんので、必要に応じてIncludeTrailingPathDelimiterを併用)

// デスクトップのフォルダパスを返す
procedure TForm1.FormCreate(Sender: TObject); 
var 
  buff: array [0..MAX_PATH] of Char; 
begin 
  SHGetSpecialFolderPath(0, buff, CSIDL_DESKTOP, False); 
  Edit1.Text := buff; 
end;

 

3番目のパラメータで取得したいフォルダを指定します。
指定できる代表的なものに次のようなフォルダのパスがあります。

  • CSIDL_DESKTOP:デスクトップ
  • CSIDL_STARTMENU:スタートメニュー
  • CSIDL_PROGRAMS:スタートメニューのプログラムのフォルダ
  • CSIDL_PERSONAL:マイドキュメント
  • CSIDL_STARTUP:スタートアップ
  • CSIDL_RECENT:最近使ったファイル

詳細はMicrosoftのHPや、Winapi.ShlObj.pasファイルのconst値をご参照下さい。
(値の中には、新しいWindows 10や11では無効になっているものも存在します。)

 

 

(ミガロ.情報マガジン「MIGARO News!!」Vol.110 2010年1月号より)