FileSystemEntry: getParent() メソッド

FileSystemEntrygetParent() インターフェイスのメソッドで、FileSystemDirectoryEntry を取得します。

構文

js
getParent(successCallback, errorCallback)
getParent(successCallback)

引数

successCallback

親ディレクトリーの項目が取得されたときに呼び出される関数です。コールバックは単一の引数として、親ディレクトリーを表す FileSystemDirectoryEntry オブジェクトを受け取ります。ルートディレクトリーの親は、ルートディレクトリーそのものとみなされます。

errorCallback 省略可

オプションのコールバックで、エラーが発生した場合に実行されます。引数は単一の DOMException で、何が間違っていたのかを説明します。

返値

なし (undefined)。

例外

FileError.INVALID_STATE_ERR

ファイルシステムの状態が許可していないため、処理を実行できませんでした。この例は、例えば、ファイルシステムのキャッシュ状態と実際の状態が異なる場合に発生する可能性があります。

FileError.NOT_FOUND_ERR

指定したパスが得られませんでした。

FileError.SECURITY_ERR

セキュリティ上の制限により、親ディレクトリーの情報を取得することができません。

この例では、変数 fileEntry で指定したファイルの名前を "newname.html" に変更します。

js
fileEntry.getParent(
  (parent) => {
    fileEntry.moveTo(parent, "newname.html", (updatedEntry) => {
      console.log(
        `ファイル ${fileEntry.name} は newname.html に改名されました。`,
      );
    });
  },
  (error) => {
    console.error(
      `エラーが発生: ${fileEntry.name} を newname.html に改名できませんでした。`,
    );
  },
);

これは、ファイルが現在置かれているディレクトリーを表す FileSystemDirectoryEntry オブジェクトを最初に取得することで実現します。次に、moveTo() を使用して、そのディレクトリー内のファイル名を変更します。

プロミスの使用

現在のところ、このメソッドの Promise ベースのバージョンはありません。しかし、単純なヘルパー関数を作成して、このように適応させることはできます。

js
function getParentPromise(entry) {
  return new Promise((resolve, reject) => {
    entry.getParent(resolve, reject);
  });
}

同様の手法は、ファイルとディレクトリー項目 API の他の場所でも見ることができます。

仕様書

Specification
File and Directory Entries API
# dom-filesystementry-getparent

ブラウザーの互換性

BCD tables only load in the browser

関連情報