前回は、
Cordova File APIとは
Cordova File APIは、
ファイルの移動や削除を行う処理を実装したい場合、
iOSアプリケーションの構造について
各アプリケーションには、
サンドボックス内の構造は次のようになっています。
ディレクトリ名 | 内容 |
---|---|
/(アプリ名).app | アプリケーション自体を含むバンドルのディレクトリです。このディレクトリに書き込みを行ってしまうと署名が変わり、 |
/Documents/ | ユーザが作成した情報で、 |
/Library/ | ユーザのデータファイル以外のファイルを格納するためのディレクトリです。ユーザのデータファイル格納に使用してはいけません。PhoneGapアプリケーションでは、 |
/tmp/ | アプリケーションを次に起動するまで保持する必要ない、 |

Androidアプリケーションの構造について
各アプリケーションには独自のプロセス上で実行され、
ディレクトリ名 | 内容 |
---|---|
/data/ |
アプリケーションのパッケージファイルが格納されるディレクトリです |
/mnt/ |
内蔵ストレージを参照しているディレクトリです |
/mnt/ |
一時的なファイルを格納するためのディレクトリです |
これらを前提にして、
File APIのオブジェクト─分類
File APIで用意されているオブジェクトは15種類です。簡単に整理してみましょう。
分類 | オブジェクトの種類 |
---|---|
ファイルシステム、 |
LocalFileSystem, DirectoryReader, FileReader |
ファイルシステム、 |
FileSystem, DirectoryEntry, FileEntry, File |
ファイルの書き込み | FileWriter |
属性、 |
Flags, Metadata |
ファイル転送に関するオブジェクト | FileTransfer, FileUploadOptions, FileUploadResult |
エラーオブジェクト | FileError, FileTransferError |
PhoneGapで用意されているファイルシステム、
File APIでファイルを操作するにあたり、
ファイルシステムについて
File APIで取り扱うファイルシステムは、
iOSとAndroidにおいて、
PERSISTENT | TEMPORARY | |
---|---|---|
iOS | /private/ (アプリケーション固有のID)/Documents/ |
/private/ (アプリケーション固有のID)/tmp/ |
Android | /mnt/ |
/mnt/ (アプリケーション名)/cache/ |
LocalFileSystemオブジェクトに用意されている次の2つのメソッドで、
window.
// cordova-2.0.0.js 4884-4891
/**
* Request a file system in which to store application data.
* @param type local file system type
* @param size indicates how much storage space, in bytes, the application expects to need
* @param successCallback invoked with a FileSystem object
* @param errorCallback invoked if error occurs retrieving file system
*/
var requestFileSystem = function(type, size, successCallback, errorCallback) {
引数は次のとおりです。
type | 取得したいファイルシステムの種類を、 |
---|---|
size | アプリケーションで必要となるストレージの容量を、 |
successCallback | FileSystemオブジェクト取得成功時のコールバック関数を指定します |
errorCallback | FileSystemオブジェクト取得失敗時のコールバック関数を指定します |
window.
// cordova-2.0.0.js 4929-4935
/**
* Look up file system Entry referred to by local URI.
* @param {DOMString} uri URI referring to a local file or directory
* @param successCallback invoked with Entry object corresponding to URI
* @param errorCallback invoked if error occurs retrieving file system entry
*/
module.exports = function(uri, successCallback, errorCallback) {
引数は次のとおりです
uri | ローカルファイルまたはディレクトリへのパスをURIで指定します |
---|---|
successCallback | FileSystemオブジェクト取得成功時のコールバック関数を指定します |
errorCallback | FileSystemオブジェクト取得失敗時のコールバック関数を指定します |
取得したFileSystemオブジェクトには、
- name
- ファイルシステムの名前が文字列型で格納されます
- root
- ファイルシステムのルートディレクトリが、
DirectoryEntryオブジェクトとして格納されます
DirectoryEntryオブジェクトについて
DirectoryEntryオブジェクトは、
DirectoryEntryオブジェクトのプロパティは次のとおりです。
- isFile:常にfalseが返ります
- isDirectory:常にtrueが返ります
- name:ディレクトリ名が格納されています
- fullPath:ルートからの絶対パスが格納されています
なお、
DirectoryEntryオブジェクトに用意されているメソッドは次のとおりです。(使い方のdirectoryEntryは、
メソッド名 | 内容 |
---|---|
使い方 | |
getMetadata | ディレクトリのメタデータを取得します。
|
directoryEntry. |
|
setMetadata | ディレクトリにメタデータを設定します。
|
directoryEntry. |
|
moveTo | ディレクトリを移動します。
|
directoryEntry. |
|
copyTo | ディレクトリをコピーします。引数はmoveToメソッドと同じです。 |
directoryEntry. |
|
toURL | ディレクトリの場所をURLで返します。返り値は文字列型です。 |
var directoryURL = directoryEntry. |
|
remove | ディレクトリを削除します。
|
directoryEntry. |
|
getParent | 親ディレクトリの情報を取得します。
|
directoryEntry. |
|
createReader | ディレクトリ内のファイルを読み込むためのオブジェクト、 |
var directoryReader = directoryEntry. |
|
getDirectory | ディレクトリ内に存在するディレクトリの情報を取得します。
|
directoryEntry. |
|
getFile | ディレクトリ内に存在するファイルの情報を取得します。
|
directoryEntry. |
|
removeRecursively | ディレクトリを再帰的に削除します。
|
directoryEntry. |
FileEntryオブジェクトについて
FileEntryオブジェクトは、 ファイルそのものを指します。
FileEntryオブジェクトのプロパティは次のとおりです。
- isFile:常にtrueが返ります
- isDirectory:常にfalseが返ります
- name:ファイル名が格納されています
- fullPath:ルートからの絶対パスが格納されています
DirectoryEntryと同様、
FileEntryオブジェクトに用意されているメソッドは次のとおりです
メソッド名 | 内容 |
---|---|
使い方 | |
getMetadata | ファイルのメタデータを取得します。
|
fileEntry. |
|
setMetadata | ファイルにメタデータを設定します。
|
fileEntry. |
|
moveTo | ファイルを移動します。
|
fileEntry. |
|
copyTo | ファイルをコピーします。引数はmoveToメソッドと同じです。 |
fileEntry. |
|
toURL | ファイルの場所をURLで返します。返り値は文字列型です。 |
var fileURL = fileEntry. |
|
remove | ファイルを削除します。
|
fileEntry. |
|
getParent | 親ディレクトリの情報を取得します。
|
fileEntry. |
|
createWriter | ファイルを書き込むのオブジェクト、 |
var fileWriter = fileEntry. |
|
file | 単一ファイルの情報を格納するFileオブジェクトを取得します。
|
fileEntry. |
Fileオブジェクトについて
Fileオブジェクトは、
Fileオブジェクトのプロパティは次のとおりです。
- name:ファイル名が格納されています
- fullPath:ルートからの絶対パスが格納されています
- type:MIMEタイプが格納されています
- lastModifiedDate:最終更新日時が格納されています
- size:ファイルサイズが格納されています
FileSystem、

操作したいファイルのパスがすでに判明している場合は、
特定のディレクトリに存在しているファイルを確認しながら処理を行う場合は、
次回は、