FileSystemEntrySync

非標準
この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

File and Directory Entries API のFileSystemEntrySync インターフェイスは、ファイルシステム内のエントリを表します。 FileEntrySyncDirectoryEntry のいずれかになります。 ファイルのコピー、移動、削除、および読み込みを含むファイルの操作方法や、ファイル名やルートからエントリまでのパスなど、それが指すファイルに関する情報が含まれています。

警告: この 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

次のいずれかの操作を試行しました:

  • 名前を変更せずにエントリを親に移動する
  • 親ディレクトリをその子ディレクトリの1つに移動する。[todo: verify]
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

次のいずれかの操作を試行しました:

  • 名前を変更せずにエントリを親に移動する
  • 親ディレクトリをその子ディレクトリの1つに移動する
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

空でないディレクトリを削除しようとしました。 空のディレクトリを削除する場合は、代わりにremoveRecursively() を使用してください。

NO_MODIFICATION_ALLOWED_ERR ソースエントリ、その親ディレクトリ、およびターゲットディレクトリのうち、いずれかが書き込み可能ではありません。

getParent()

エントリを含む親 DirectoryEntrySync を調べます。このエントリがファイルシステムのルートである場合、親はそれ自身です。

void getParent ();
引数

なし

戻り値
DirectoryEntrySync
ファイルシステム内のディレクトリを表すオブジェクト。
例外

なし

ブラウザの互換性

No compatibility data found. Please contribute data for "api.FileSystemEntrySync" (depth: 1) to the MDN compatibility data repository.

あわせて参照

仕様:File API: Directories and System SpecificationWD

リファレンス: File System API

イントロダクション: Basic Concepts About the File System API