あんパン

こしあん派

FileEntryは非同期

一個前の記事でChromeはディレクトリも取れるみたいなこと書いたんだけど、とても重要なことに気づいた。

FileEntryは同期ではない。

File API - Folder Drag and Drop Example

前のエントリで貼ったのはこれ。

item.file(function(file) {
  var li = document.createElement('li');
  li.innerText = path + file.name;
  filelist.appendChild(li);
});

の部分、つまりFileEntryfileメソッドは同期的ではない。これの何が問題かというと、ディレクトリを走査してFileEntryからfileを取得してきてその一覧に対してなんらかの作業をすることが困難ということ。

File API: Directories and System

ここにいろいろと書いてある。FileEntrySyncというものはあるけど、どうにも使い方がわからんからそのうち調べる。