mieki256's diary



2026/02/02(月) [n年前の日記]

#1 [lazarus] Lazarusでアプリの設定ファイルを保存したい

Lazarus 4.4 で、アプリの設定ファイルを保存したい。環境は Windows11 x64 25H2。

設定ファイルを保存する場所として、C:\Users\(USERNAME)\AppData\Roaming\ を取得して、その下にアプリ名でディレクトリ(フォルダ)を作成して、その中に .json 等を保存したい。

Windows11の場合、件のディレクトリは環境変数 %APPDATA% で指定されているはずなのだけど…。

Lazarus ではどうやってそのディレクトリパスを取得するのか少しググってみたら、GetAppConfigDir() というものがあるそうで、これを使えば設定を保存しても良さそうなディレクトリを提示してくれる、らしいのだけど…。

_Multiplatform Programming Guide/ja - Lazarus wiki

試してみたら、AppData/Roaming ではなくて、AppData/Local を返してきた。Roaming のほうを取得したいのだけどな…。

結局、こうなった。

function GetConfigDir: string;
var
  dirpath: string;
begin
  dirpath := GetEnvironmentVariable('APPDATA');
  if dirpath = '' then
  begin
    dirpath := ConcatPaths([GetUserDir, 'AppData', 'Roaming']);
  end;

  Result := ConcatPaths([dirpath, CONFIG_DIR]);
end;


ConcatPaths() は、配列?に入った文字列を結合してファイルパスを作ってくれるらしい。

ただ、それぞれのフォルダの違いを確認してみたところ…。もしかするとこの場合、Local フォルダに入れたほうがいいのだろうか…?

_AppData 直下の「Local」「LocalLow」「Roaming」フォルダの違い|ことりと
_AppDataの下にあるLocal,Roaming,LocalLowの3つはどんな違いがある? - おねーさんブログ
_ユーザーフォルダの「Roaming」「Local」「LocalLow」の違いについて | おのでらの創作日記 in ソーサリーフォース
_猫科研究所 - Roaming, Local, LocalLow

以上です。

過去ログ表示

Prev - 2026/02 -
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project