非標準
この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。
File and Directory Entries API のFileSystemEntrySync
インターフェイスは、ファイルシステム内のエントリを表します。 FileEntrySync
か DirectoryEntry
のいずれかになります。 ファイルのコピー、移動、削除、および読み込みを含むファイルの操作方法や、ファイル名やルートからエントリまでのパスなど、それが指すファイルに関する情報が含まれています。
警告: この API は決して受け入れられず、標準化もされませんでした。さまざまなブラウザが File and Directory Entries API (ファイルシステム API とも呼ばれます) を実装していますが、使用を避けるようにしてください。
基本のコンセプト
FileSystemEntrySync
インターフェイスには、ファイルやディレクトリの操作に必要なメソッドが含まれていますが、toURL()
というエントリの URL を取得するための便利なメソッドもあります。 また新しい URL スキーム filesystem:
を紹介します。
Google Chromeで filesystem:
スキームを使用すると、アプリのルートに保存されているすべてのファイルとフォルダを表示できます。 アプリの起源のルートディレクトリに filesystem:
スキームを使用するだけです。たとえば、アプリが http://ww.html5rocks.com
にある場合は、 filesystem:http://www.html5rocks.com/temporary/
をタブで開きます。Chrome は、アプリのオリジンに保存されているすべてのファイルとフォルダの読み取り専用リストを表示します。
メソッド概要
Metadata getMetadata () raises (FileException); |
FileSystemEntrySync moveTo (in DirectoryEntrySync parent, optional DOMString newName) raises (FileException); |
FileSystemEntrySync copyTo(in DirectoryEntrySync parent, optional DOMString newName) raises (FileException); |
DOMString toURL(); |
void remove() raises (FileException); |
DirectoryEntrySync getParent(); |
属性
属性 | タイプ | 説明 |
---|---|---|
filesystem |
readonly FileSystemSync |
エントリが存在するファイルシステム。 |
fullpath |
readonly DOMString |
ルートからエントリまでの完全な絶対パス。 絶対パスはルートディレクトリからの相対パスで、先頭に ' |
isDirectory |
readonly boolean |
FileSystemEntrySync がディレクトリの場合は True です。 |
isFile |
readonly boolean |
FileSystemEntrySync がファイルの場合は True です。 |
name |
readonly DOMString |
エントリに至るパスを除いたエントリの名前。 |
メソッド
getMetadata()
このエントリに関するメタデータを検索します。 [ todo: どのような種類のメタデータを指定するか]
Metadata getMetada ()
raises (FileException)
;
引数
- なし
戻り値
Metadata
例外
このメソッドは、次のコードで FileException が発生する可能性があります。
例外 | 説明 |
---|---|
NOT_FOUND_ERR |
エントリが存在しません。 |
INVALID_STATE_ERR |
FileSystemSync は、削除される以外の何らかの理由でもはや有効ではありません。 |
moveTo()
エントリをファイルシステム上の別の場所に移動します。 既存のファイルにファイルを移動すると、その既存のファイルが置き換えられます。既存の空のディレクトリにディレクトリを移動すると、そのディレクトリが置き換えられます。[todo: ディレクトリが空でない場合はどうなりますか?]
[todo: Verify ] これはファイルの名前を変更するのと同じ方法です。 同じ場所に保持してから、newName
パラメータを定義することができます。
次の操作はできません。
- ディレクトリ自体を移動するか、任意の深さの任意の子に移動する
- 現在のエントリと異なる名前が与えられていない場合は、エントリをその親に移動する
- ファイルをディレクトリが占有しているパスに移動する、またはディレクトリをファイルが占有するパスに移動する
- 空でないディレクトリが占めるパスに要素を移動します。
FileSystemEntrySync moveTo ( in DirectoryEntrySync parent, optional DOMString newName ) raises (FileException);
引数
- parent
- エントリを移動するディレクトリ。
- newName
- エントリの新しい名前。名前を指定しない場合、ブラウザはエントリの現在の名前を保持します。
戻り値
FileSystemEntrySync
- ファイルシステム内のエントリを表すオブジェクト。
例外
このメソッドは、次のコードで FileException が発生する可能性があります。
例外 | 説明 |
---|---|
ENCODING_ERR |
少なくとも1つの文字が予約されているかイレギュラーなので、指定された名前は無効です。 例には、バックスラッシュ (\)、ドット (.)、および2つのドット (..) が含まれます。 |
NOT_FOUND_ERR |
ターゲットディレクトリが存在しません。 |
INVALID_MODIFICATION_ERR |
次のいずれかの操作を試行しました:
|
NO_MODIFICATION_ALLOWED_ERR |
ソースエントリ、その親ディレクトリ、およびターゲットディレクトリのうち、いずれかが書き込み可能ではありません。 |
copyTo()
エントリをファイルシステム上の別の場所にコピーします。エントリがディレクトリの場合は、そのエントリをコピーすることはできません。また、新しい名前を指定せずに親にコピーすることもできません。ディレクトリコピーは常に再帰的です。つまり、ディレクトリのすべての内容がコピーされます。この動作を変更することはできません。ファイルは単純に複製されます。
void copyTo ( in DirectoryEntrySync parent, optional DOMString newName ) raises (FileException);
引数
- parent
- エントリを移動するディレクトリ。
- newName
- エントリの新しい名前。名前を指定しない場合、ブラウザは FileSystemEntrySync の現在の名前を保持します。
戻り値
FileSystemEntrySync
- ファイルシステム内のエントリを表すオブジェクト。
例外
このメソッドは、次のコードで FileException が発生する可能性があります。
例外 | 説明 |
---|---|
ENCODING_ERR |
少なくとも1つの文字が予約されているかイレギュラーなので、指定された名前は無効です。 例には、バックスラッシュ (\)、ドット (.)、および2つのドット (..) が含まれます。 |
NOT_FOUND_ERR |
ターゲットディレクトリが存在しません。 |
INVALID_MODIFICATION_ERR |
次のいずれかの操作を試行しました:
|
NO_MODIFICATION_ALLOWED_ERR |
ソースエントリ、その親ディレクトリ、およびターゲットディレクトリのうち、いずれかが書き込み可能ではありません。 |
QUOTA_EXCEEDED_ERR |
この操作により、アプリケーションはストレージクォータを超過します。 ユーザーが明示的に付与する必要があるより大きな永続ストレージを要求する可能性があります。詳細については、基本概念の記事を参照してください。 |
toURL()
このエントリを識別するために使用できるURLを返します。これは src
や href
属性を埋めるために使用できる新しい URL スキーム、 filesystem:
を公開しています。たとえば、イメージを表示しその fileEntry を持つ場合、 toURL()
を呼び出すと、イメージファイルのファイルシステムURLが得られます。
あなたは filesystem:http://example.com/temporary/lolcat.png
のようなものを手に入れます。
ファイルシステムの URL の有効期限はありません。このメソッドはディスク上の場所を記述しているため、URL はその場所が存在する限り有効です。あなたはファイルを削除して再作成することができます。
mimeType
を指定すると、HTTP ダウンロードに関連付けられているオプションの MIME タイプヘッダーをシミュレートできます。
DOMString toURL ();
引数
- なし
戻り値
DOMString
例外
なし
remove()
ファイルまたはディレクトリを削除します。 空のディレクトリやファイルシステムのルートディレクトリは削除できません。 空のディレクトリを削除する場合は、代わりに removeRecursively()
を使用してください。
void remove ( ) raises (FileException);
引数
なし
戻り値
void
例外
このメソッドは、次のコードと FileException を発生させることができます。
例外 | 説明 |
---|---|
NOT_FOUND_ERR |
ターゲットディレクトリが存在しません。 |
INVALID_MODIFICATION_ERR |
空でないディレクトリを削除しようとしました。 空のディレクトリを削除する場合は、代わりに |
NO_MODIFICATION_ALLOWED_ERR |
ソースエントリ、その親ディレクトリ、およびターゲットディレクトリのうち、いずれかが書き込み可能ではありません。 |
getParent()
エントリを含む親 DirectoryEntrySync
を調べます。このエントリがファイルシステムのルートである場合、親はそれ自身です。
void getParent ();
引数
なし
戻り値
DirectoryEntrySync
- ファイルシステム内のディレクトリを表すオブジェクト。
例外
なし
あわせて参照
仕様:File API: Directories and System SpecificationWD
リファレンス: File System API
イントロダクション: Basic Concepts About the File System API