« 【Tizen】エミュレータにSDカードをマウントし、使用可能にする | トップページ | 【Android】adtをver22にバージョンアップしたら、NoClassDefFoundErrorが発生するようになった! »

2013年5月24日 (金)

【Tizen】SDカード内のファイルにアクセスする

今回は、SDカードの中にファイルを作ったり、

中にあるファイルにアクセスする方法について説明します。


(1) config.xmlに、ファイルアクセス用のprivilegesを追加する

アプリからファイルアクセスを行う場合は、config.xmlにprivilegesを追加する必要があります。

(Androidアプリ開発経験者の方には、パーミッションのようなものと言うと解りやすいかもしれません。)

追加を忘れると、ファイルアクセス時にエラーとなります。

追加するprivilegesは、以下のとおりです。

  • ファイル読み込みを行う場合
    http://tizen.org/privilege/filesystem.read
  • ファイル書き込みを行う場合
    http://tizen.org/privilege/filesystem.write


(2) ファイルアクセスを行うAPIについて

ファイルアクセスを行うには、tizen.filesystem.resolveメソッドを使用します。

/* tizen.filesystem.resolve */
void resolve(
 DOMString location, // ファイルパスを指定する
 FileSuccessCallback onsuccess, // アクセス成功時に呼ばれるコールバック
 optional ErrorCallback onerror, // アクセス失敗時に呼ばれるコールバック
 optional FileMode mode) // アクセス権限。"r","rw","w","a"が指定可能 

第一引数"location"に、アクセス先のパスを記述します。

すなわち、SDカードにアクセスする際は、SDカードのパスを記述すれば良いのですが、

tizenでは、SDカードへの仮想パスが用意されています。

SDカードのルートディレクトリへの絶対パスと、仮想パスは以下のとおりです。

絶対パス仮想パス
/mnt/mmc removable1

では、さっそくresolveメソッドを使ってみましょう。

以下はresolveメソッドの使用例です。

SDカード内の特定のフォルダにアクセスしたい場合、

例えば"my documents"というフォルダに直接アクセスする場合は、

パスの指定を"removable1/my documents"とすればOKです。

上記ソースの5行目、コールバックメソッドにて渡される"dir"変数が、

SDカードのルートディレクトリを表すオブジェクトです。

このオブジェクトの型名及び主なプロパティは、以下のとおりです。

型名説明
FILE ファイルまたはディレクトリを表す。
プロパティ 説明
DOMString path ファイルのパス
DOMString name ファイルの名前
boolean isFile ファイルか否かを保持
boolean isDirectory フォルダか否かを保持
File createFile(DOMString relativeFilePath);
引数で指定された名前のファイルを作成する。
File createDirectory(DOMString dirPath);
引数で指定された名前のフォルダを作成する。
void listFiles(
FileArraySuccessCallback onsuccess,
  optional ErrorCallback onerror,
  optional FileFilter? filter);
配下にあるすべてのフォルダ及びディレクトリ一覧を取得する。


参考までに、SDカード直下に"yoshio"というフォルダを作るソースを載せてみました。

なお、エミュレータでSDカードにアクセスする場合は、

予め、エミュレータにSDカードをマウントしておく必要があります。

SDカードのマウント方法は、こちらをご覧ください。

 

« 【Tizen】エミュレータにSDカードをマウントし、使用可能にする | トップページ | 【Android】adtをver22にバージョンアップしたら、NoClassDefFoundErrorが発生するようになった! »

Tizen」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1882306/51737204

この記事へのトラックバック一覧です: 【Tizen】SDカード内のファイルにアクセスする:

« 【Tizen】エミュレータにSDカードをマウントし、使用可能にする | トップページ | 【Android】adtをver22にバージョンアップしたら、NoClassDefFoundErrorが発生するようになった! »

購入


無料ブログはココログ