DirectoryEntrySync

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

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

DirectoryEntrySync インターフェイスは、ファイルシステム内のディレクトリーを表します。ディレクトリー内のファイルの作成、読み込み、検索、および再帰的に削除するためのメソッドが含まれています。

メモ: このインターフェイスは非推奨で、標準路線ではなくなりました。 もう使用しないでください。 代わりにファイルおよびディレクトリー項目 APIを使用してください。

基本的なコンセプト

サブディレクトリーを作成する場合は、順番に各子ディレクトリーを作成する必要があります。まだ存在しない親ディレクトリーを含むフルパスを使用してディレクトリーを作成しようとすると、エラーが発生します。したがって、親ディレクトリーを作成した後、新しいパスを再帰的に追加して階層を作成します。

getFile() メソッドは、ファイルシステム内のファイルを表す FileEntrySync を返します。以下は、ルートディレクトリーに logs.txt という名前の空のファイルを作成します。

js
const fileEntry = fs.root.getFile("logs.txt", { create: true });

getDirectory() メソッドは、ファイルシステム内のファイルを表す DirectoryEntrySync を返します。以下は、ルートディレクトリーに project_dir という新しいディレクトリーを作成します。

js
const dirEntry = fs.root.getDirectory("project_dir", { create: true });

メソッド概要

メソッド

createReader()

このディレクトリーから項目を読み込むための新しい DirectoryReaderSync を作成します。

構文

js
createReader();
返値
DirectoryReaderSync

ファイルシステム内のディレクトリーを表します。

引数

なし

例外

このメソッドは、次のコードで DOMException が発生する場合があります。

例外 説明
NOT_FOUND_ERR ディレクトリーが存在しません。
SECURITY_ERR ブラウザーはメタデータを検索するのは安全ではないと判断しました。[ TODO: 理由を説明してください ]

getFile()

options 引数をどのように設定したかに応じて、このメソッドはファイルを作成するか、既存のファイルを検索します。

構文

js
getFile(path)
getFile(path, options)
引数
path

検索または作成するファイルへのディレクトリーからの絶対パスまたは相対パス。直属の親が存在しないファイルを作成することはできません。最初に親ディレクトリーを作成してください。

options

メソッドの動作を記述するオブジェクトリテラル。ファイルが存在しない場合は作成されます。

オブジェクトリテラル 条件 結果
create: true
exclusive: true
パスが既に存在する エラーが発生します。
create: true
exclusive: false
パスが存在せず、他のエラーが発生していない ファイルが作成されます。ファイルが既に存在していれば、エラーが発生しません。
create: false
(exclusive は無視)
パスが存在する ファイルが返されます。
create: false
(exclusive は無視)
パスが存在しない エラーが発生します。
create: false
(exclusive は無視)
パスが存在しますが、ディレクトリーです。 エラーが発生します。
返値
FileEntrySync

ファイルシステム内のファイルを表します。

例外

このメソッドは、次のコードで DOMException が発生する場合があります。

例外 説明
ENCODING_ERR 指定されたパスは無効です。
NOT_FOUND_ERR パスは構造的には正しいのですが、存在しないリソースを参照しています。
NO_MODIFICATION_ALLOWED_ERR これはパーミッションの問題です。対象のディレクトリーまたはファイルは書き込み可能ではありません。
PATH_EXISTS_ERR ファイルは既に存在しています。同じパスで別のファイルを作成することはできません。
QUOTA_EXCEEDED_ERROR この操作により、アプリケーションがストレージのクォータを超えてしまいます。
SECURITY_ERR アプリケーションは path で参照される要素にアクセスする権限を持っていません。[ todo: 理由を説明してください ]
TYPE_MISMATCH_ERR 指定されたパスは存在しますが、ディレクトリーではありません。

getDirectory()

ディレクトリーを作成または検索します。このメソッドは DirectoryEntrySync が渡される getFile() に似ています。

構文

js
getDirectory(path)
getDirectory(path, options)
引数
path

検索または作成するファイルへのディレクトリーからの絶対パスまたは相対パス。直属の親が存在しないファイルを作成することはできません。最初に親ディレクトリーを作成してください。

options

(オプション)ファイルが存在しない場合のメソッドの動作を記述するオブジェクトリテラル。

オブジェクトリテラル 条件 結果
create: true
exclusive: true
パスが既に存在する エラーが発生します。
create: true
exclusive: false
パスが存在せず、他のエラーが発生しない ディレクトリーが作成されます。既にファイルが存在する場合はエラーは発生しません。
create: false
(exclusive は無視される)
パスが存在する ディレクトリーが返されます。
create: false
(exclusive は無視される)
パスが存在しない エラーが発生します。
create: false
(exclusive は無視される)
パスが存在するが、ディレクトリーである エラーが発生します。
返値
DirectoryEntrySync

ファイルシステム内のディレクトリーを表します。

例外

このメソッドは、次のコードで DOMException が発生する場合があります。

例外 説明
ENCODING_ERR 指定されたパスは無効です。
NOT_FOUND_ERR パスは構造的には正しいのですが、存在しないリソースを参照しています。
NO_MODIFICATION_ALLOWED_ERR これはパーミッションの問題です。対象のディレクトリーまたはファイルは書き込み可能ではありません。
PATH_EXISTS_ERR ファイルは既に存在しています。同じパスで別のファイルを作成することはできません。
QUOTA_EXCEEDED_ERROR この操作により、アプリケーションがストレージのクォータを超えてしまいます。
SECURITY_ERR アプリケーションは path で参照される要素にアクセスする権限を持っていません。[ todo: 理由を説明してください ]
TYPE_MISMATCH_ERR 指定されたパスは存在しますが、ディレクトリーではありません。

removeRecursively()

ディレクトリーとそのすべての内容を削除します。ファイルシステムのルートディレクトリーは削除できません。

削除できないファイルを含むディレクトリーを削除した場合や、削除中にエラーが発生した場合、内容の一部が削除されないことがあります。このような場合は、エラーコールバックでキャッチし、削除を再試行してください。

構文

js
removeRecursively()
引数

なし

返値
undefined
例外

このメソッドは、次のコードで DOMException が発生する場合があります。

例外 説明
NOT_FOUND_ERR 対象となるディレクトリーが存在しません。
INVALID_STATE_ERR このディレクトリーは、削除された以外の何らかの理由で有効ではありません。

[todo: 説明してください ]

NO_MODIFICATION_ALLOWED_ERR ディレクトリー、その親ディレクトリー、ディレクトリー内のコンテンツの一部が書き込み不可です。
SECURITY_ERR このアプリケーションは、ターゲットディレクトリー、その親ディレクトリー、またはそのコンテンツの一部にアクセスする権限を持っていません。

仕様書

この機能は、現在のどの仕様にも含まれていません。標準化される予定はありません。 代わりにファイルとディレクトリー項目 API を使用してください。

ブラウザーの互換性

BCD tables only load in the browser

関連情報