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()
* getFile()
* getDirectory()
* removeRecursively()
メソッド
----

### createReader()

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

#### 構文
```

DirectoryReaderSync createReader (
) raises (FileException);
```


##### 返値

`DirectoryReaderSync` (en-US)

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

##### 引数

なし

##### 例外

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

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

### getFile()

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

#### 構文
```

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` (en-US)

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

##### 例外

このメソッドは、次のコードで `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()` に似ています。

#### 構文
```

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` (en-US)

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

##### 例外

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

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

### removeRecursively()

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

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

#### 構文
```

removeRecursively()
```


##### 引数

なし

##### 返値

`undefined`
##### 例外

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

| 例外 | 説明 |
| --- | --- |
| `NOT_FOUND_ERR` | 対象となるディレクトリーが存在しません。 |
| `INVALID_STATE_ERR` | このディレクトリーは、削除された以外の何らかの理由で有効ではありません。
 [todo: 説明してください ] |
| `NO_MODIFICATION_ALLOWED_ERR` | ディレクトリー、その親ディレクトリー、ディレクトリー内のコンテンツの一部が書き込み不可です。 |
| `SECURITY_ERR` | このアプリケーションは、ターゲットディレクトリー、その親ディレクトリー、またはそのコンテンツの一部にアクセスする権限を持っていません。 |

仕様書
---

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

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ファイルおよびディレクトリー項目 API
* ファイルおよびディレクトリー項目 API 入門