AIR の app-storage:/ はどこに保存される?
AIR ではアプリケーションの設定を app-storage:/ に保存することが推奨されています。
使い方はこんな感じ。
var file:File = new File("app-storage:/myfile.txt");
もしくは、File.applicationStorageDirectory を使って、次のようにもできます。
var file:File = File.applicationStorageDirectory.resolve("myfile.txt");
file:/ ではなく、app-storage:/ を使うことで、Windows でも Mac でも、ディレクトリ構造を意識せずに設定を保存できるというメリットがあります。
じゃあ、ファイルは一体どこに保存されるかというと...
- Windows XP
- C:\Documents and Settings\username\Application Data\appId\Local Store
- Windows Vista
- (2007/6/19修正) C:\Users\username\AppData\Roaming\appId\Local Store
- Mac
- /Users/username/Library/Preferences/appId/Local Store
だそうです。appId の部分は ADF(Apollo Descriptor File) で指定したものに置き換えてください。(参考:Apollo File Path Gotcha ≫ Brandon Ellis Dot Org、AMOSTYLE2.0 ≫ AIR の app-storage:/ はVistaではどこに保存される?)
例えば、先ほどのアプリケーションの appId が「com.nitoyon.sampleApp」だったとすると、app-storage:/myfile.txt に保存したファイルは XP では
C:\Documents and Settings\username\Application Data\com.nitoyon.sampleApp\Local Store\myfile.txt
に保存されるわけです。
ちなみに、AIR アプリケーションをアンインストールしても、app-storage に保存されたファイルは消えません。ちょっとお行儀は悪いところに注意が必要です。
app-storage と似たものとして、app-resource(もしくは File.applicationResourceDirectory)があります。app-resource は AIR アプリケーションがインストールされたディレクトリを表します。
app-resource にファイルを出力したとしても、アンインストール時に自動的に消えることはありません。
どうやら、アンインストール時には .air パッケージに含まれていたファイルのみを削除している模様です。