FileSystemFileEntry

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

File System APIFileSystemFileEntry インターフェイスは、ファイルシステム内のファイルを表します。
このファイルには、ファイルの属性と、ファイルを読むために使用可能な File オブジェクトを作成する file() メソッドも含まれます。

プロパティ

親インターフェイス FileSystemEntry のプロパティを継承しますが、このインターフェイスに固有のプロパティはありません。

メソッド

file()
ファイルの読み込みに使用できる新しい FileWriter オブジェクトを作成します。

廃止されたメソッド

createWriter()
新しい FileWriter オブジェクトを作成し、ファイルシステムエントリで表されるファイルに書き込むことができます。

基本のコンセプト

コンテンツをファイルに書き込むには、createWriter() を呼び出して FileWriter オブジェクトを作成します。 ファイルを読み込むには、file() を呼び出すことによってその内容を表す File オブジェクトを取得します。

以下のコードは "log.txt" という空のファイルを (存在しない場合は) 作成し、"Meow" というテキストで埋めています。success コールバックの内部では、error errorwriteend イベントを処理するためのイベントハンドラが設定されています。テキストデータは、Blob を作成してテキストを付加し、FileWriter.write() に渡すことでファイルに書き込まれます。

function onInitFs(fs) {
  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {

    // FileSystemFileEntry (log.txt) 用の FileWriter オブジェクトを作成します。
    fileEntry.createWriter(function(fileWriter) {
      fileWriter.onwriteend = function(e) {
        console.log('Write completed.');
      };

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
      };

      // 新しい Blob を作成して log.txt に書き込みます。
      var bb = new BlobBuilder();
      bb.append('Meow');
      
      fileWriter.write(bb.getBlob('text/plain'));
    }, errorHandler);

  }, errorHandler);

}

window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);

仕様

仕様書 策定状況 備考
File and Directory Entries API
FileSystemFileEntry の定義
ドラフト 提案された API のドラフト

ブラウザの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
FileSystemFileEntryChrome 完全対応 8
代替名
完全対応 8
代替名
代替名 非標準の名前 FileEntry を使用しています。
Edge 完全対応 79
接頭辞付き
完全対応 79
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Firefox 完全対応 50IE 未対応 なしOpera 未対応 なしSafari 完全対応 11.1WebView Android 完全対応 ≤37
代替名
完全対応 ≤37
代替名
代替名 非標準の名前 FileEntry を使用しています。
Chrome Android 完全対応 18
代替名
完全対応 18
代替名
代替名 非標準の名前 FileEntry を使用しています。
Firefox Android 完全対応 50Opera Android 未対応 なしSafari iOS 完全対応 11.3Samsung Internet Android 完全対応 1.0
代替名
完全対応 1.0
代替名
代替名 非標準の名前 FileEntry を使用しています。
createWriter
非推奨非標準
Chrome 完全対応 8Edge 完全対応 79Firefox 未対応 50 — 52
補足
未対応 50 — 52
補足
補足 While the createWriter() method existed, it immediately called errorCallback with the NS_ERROR_DOM_SECURITY_ERR error.
IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 未対応 50 — 52
補足
未対応 50 — 52
補足
補足 While the createWriter() method existed, it immediately called errorCallback with the NS_ERROR_DOM_SECURITY_ERR error.
Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 1.0
fileChrome 完全対応 8Edge 完全対応 79Firefox 完全対応 50IE 未対応 なしOpera 未対応 なしSafari 完全対応 11.1WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 50Opera Android 未対応 なしSafari iOS 完全対応 11.3Samsung Internet Android 完全対応 1.0

凡例

完全対応  
完全対応
未対応  
未対応
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
非標準の名前を使用しています。
非標準の名前を使用しています。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

あわせて参照