【AIR】 ローカルファイル保存の仕方

Adobe AIR 入門の続き。ローカルディスクにファイルを保存してみる練習。

次のように書いて、ファイルの保存ができた。

var f = air.File.applicationStorageDirectory.resolvePath("LocalFile.txt");
var fs = new air.FileStream();
fs.open(f, air.FileMode.WRITE);
fs.writeUTFBytes('aaaaaa');
fs.close();

ファイルに書き込みをしたときに SecurityError というエラーが出て困ったが、air.File.applicationDirectory.resolvePath("LocalFile.txt") に対して書き込みしていたことが原因だったと判明。applicationDirectory には書き込めない仕様らしい(参考:as flash as flex - horori.net)。

air.File.applicationStorageDirectory が具体的にどのパスを指すのかについては、 blog ViolentCoding さんが調べてくれているので参照。

Mac OS X:
Macintosh HD/Users/[ユーザー]/Library/Preferences/[AIRアプリID]/Local Store/

Windows XP:
C:\Documents and Settings\[ユーザー]\Application Data\[AIRアプリID]\Local Store\

AIRアプリID は、application.xml に書かれている<id>タグの値。Aptana Studio で作ったプロジェクトでは、com.adobe.example.HelloWorldのような値がデフォルトとなった。

Adobe AIR Language Reference for HTML Developers を見ると、アプリケーションディレクトリの種類は下記のものがありそう。

  • applicationDirectory
  • applicationStorageDirectory
  • desktopDirectory
  • documentsDirectory
  • userDirectory

プロフィール

コヤナギ トモヤ

まったりウェブ系コーダーしてます。PHP製静的CMS Pickles 2 を開発しています。

RSSフィード

  • このサイトは、 コヤナギ トモヤ の個人サイトです。
  • 個人的な主張や、活動の記録などを掲載しています。 所属する企業、団体、その他の意見や立場を代表するものではありません。
  • 掲載された内容は古くなっている可能性があります。 特に古い記事では、現在の筆者の考えと異なる主張をしていることがありますが、記録としてそのまま残しております。 予めご了承ください。
ページの先頭へ戻る