FileSystemFileEntry.file()

FileSystemFileEntry インターフェイスの file() メソッドは、子のディレクトリー項目が表現しているファイルからデータを読むために使用できる File オブジェクトを返します。

構文

js
file(successCallback);
file(successCallback, errorCallback);

引数

successCallback

コールバック関数で、 File が正常に作成されたときに呼び出されます。コールバックには、唯一の引数として File が渡されます。

errorCallback 省略可

指定された場合、 File を作成しようとしてエラーが発生したときに呼び出されるメソッドである必要があります。このコールバックは、エラーを記述した DOMException オブジェクトを入力として受け取ります。

返値

なし (undefined)。

この例ではメソッド readFile() を作成し、テキストファイルを読み込み、読み込みが完了すると、指定されたコールバック関数を受け取ったテキスト(文字列)つきで呼び出します。エラーが発生した場合は、指定された(オプションの)エラーコールバック関数が呼び出されます。

js
function readFile(entry, successCallback, errorCallback) {
  entry.file(function (file) {
    let reader = new FileReader();

    reader.onload = function () {
      successCallback(reader.result);
    };

    reader.onerror = function () {
      errorCallback(reader.error);
    };

    reader.readAsText(file);
  }, errorCallback);
}

この関数は file() を呼び出し、その成功コールバックとして FileReader を使ってファイルをテキストとして読み込むメソッドを指定します。 FileReader の load イベントハンドラーは、読み込んだ文字列を readFile() メソッドが呼ばれたときに指定した successCallback に渡すようにセットアップされています。同様に、error ハンドラーは、指定された errorCallback を呼び出すようにセットアップされます。

仕様書

Specification
File and Directory Entries API
# dom-filesystemfileentry-file

ブラウザーの互換性

BCD tables only load in the browser

関連情報