KAGの栞の保存場所は Config.tjs の
saveDataLocation
で指定します。吉里吉里本体の実行可能ファイルと同じフォルダに保存する方法と、(マルチユーザ環境下において) ユーザごとのフォルダに保存する方法があります。いずれの場合も該当するサブフォルダがなかった場合は自動的に作成されます。
;saveDataLocation = "savedata";
のように指定すると、この場合は単純に吉里吉里本体の実行可能ファイルの下の savedata フォルダに栞が保存されます。
;saveDataLocation = System.personalPath + "吉里吉里の栞データ";
あるいは
;saveDataLocation = System.appDataPath + "吉里吉里の栞データ";
のように指定すると、ユーザごとのフォルダの下に "吉里吉里の栞データ" というフォルダが作られ、そこに栞が保存されるようになります。
ユーザごとのフォルダは、System.personalPath を指定した場合は「マイ ドキュメント」になります。これは、Windows 95/NT4.0 では Windows をインストールしたフォルダ下の "Personal" フォルダの場合があります。また Windows 95 の初期のバージョンではマイ ドキュメントに相当するフォルダがないため、吉里吉里の実行可能ファイルと同じフォルダが使用される場合があります。
System.appDataPath を指定した場合は、通常、以下のようになります ( 内部的にはレジストリの
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
の
AppData
を読み出しています )。
- Windows 95, 98, 98SE, ME でマルチユーザ環境でない場合
C:\Windows\Application Data\
( C:\Windows の部分は Windows をインストールした場所です )
- Windows 95 (初期型でない場合), 98, 98SE, ME でマルチユーザ環境の場合
C:\Windows\Profiles\<ユーザ名>\Application Data\
( C:\Windows の部分は Windows をインストールした場所です )
- Windows NT 4.0 の場合
C:\WINNT\Profiles\<ユーザ名>\Application Data\
( C:\WINNT の部分は Windows をインストールした場所です )
- Windows 2000, Xp の場合
C:\Documents and Settings\<ユーザ名>\Application Data\
( C: の部分は環境によって異なります )
- 何らかの理由で レジストリキー ( 上記参照 ) を読み出せなかった場合か、初期の Windows 95
- 吉里吉里の実行可能ファイルのあるフォルダになります
System.personalPath を指定する場合も、System.appDataPath を指定する場合も、同じマシンに複数の吉里吉里/KAG 作品、あるいはユーザごとのフォルダにフォルダを作成する他のアプリケーションと競合しないように、例で示した "吉里吉里の栞データ" の部分は、十分に他のアプリケーションなどと重ならなさそうな名前を選ぶ必要があり、また、十分に説明的な名前が良いでしょう ( "<作品名>のセーブデータ" など )。
これらの方法 ( 吉里吉里の実行可能ファイルのあるフォルダと同じフォルダの下に作成するか、あるいはユーザごとのフォルダに作成するか ) のどちらが良いかは作品の配布形態によります。
たとえば、ユーザにダウンロードしてもらって展開、そのまま ( インストールなどの手順を踏まずに ) プレイという形態 (インストーラを使用しない場合) では、わざわざユーザごとのフォルダに保存する必要はないでしょう。吉里吉里の実行可能ファイルと同じフォルダの下に保存できた方が便利です。
しかし、たとえばインストーラを用いて Program Files 以下にインストールするときなどでマルチユーザ環境を対象にする場合はユーザごとのフォルダ ( System.appDataPath か System.personalPath を指定する ) にファイルを保存できた方が良いでしょう。特に Windows NT 系の OS ( 4.0/2000/Xp ) をターゲットにする場合でかつ、Program Files 以下にインストールするときは ユーザごとのフォルダに栞データを保存する形態をおすすめします。通常、一般ユーザは Program Files 以下にファイルを書き込む権限を持っていないためです。
また、ユーザのフォルダに栞データを保存すれば、吉里吉里の実行可能ファイル以下には通常ファイルを書き込む動作を行いません。CD-ROM から直接実行する場合などでもデータを保存することができます ( ただし Windows 95 の中にはユーザごとのフォルダが存在しないものがあるので、この場合は対応 OS から Windows 95 を除いた方が良いかと思います )。
ただし、System.appDataPath で示されるフォルダは、通常、隠しフォルダになってるので注意が必要です。データの置いてある場所の見通しをよくするには「マイ ドキュメント」下になる System.personalPath を使った方が良いでしょう。
Note
このほかにも、
;saveDataLocation = Storages.getFullPath(System.readRegValue("HKEY_CURRENT_USER\\Software\\anycompany\\anyproduct\\savefolder"));
等のようにレジストリから栞の保存場所の値を読み出すようにすることもできます。