2010-11-21 8 views
2

Firefox 3.6ドラッグアンドドロップAPIを使用して、いくつかの要素にディレクトリをドロップし、FileAPIでそれらのファイルを処理しましょう。それはどのようにディレクトリで動作しますか?Javascript FileAPI:ディレクトリを繰り返しますか?

Mac OS X Finderは、いくつかのディレクトリをファイル(.app、.tmbundle、.abbu、...)として表示します。ほとんどの場合、これは素晴らしいことです。 File-and DND-APIを介してブラウザとやりとりする場合、そうではありません。エンドユーザは、実際のファイルとmy-addressbook-backup.abbuのようなファイルのソートを区別することができません。

したがって、Javascript UIはディレクトリ構造を識別できる必要があります。構造体を通過することができない場合は、それに応じてユーザーに通知する必要があります。

どのように達成することができますか?

編集:

私はJSのディレクトリを通過できるようにするときに生じる(潜在的な)問題を見ることができます。私はディレクトリトラバーサルそれ自体を呼び出すつもりはありません(私はバインドできませんが)。私はFoo.appが(Finder.appを介してユーザーに見えるように)ファイルとして扱われていますが、実際にはDirectoryであると言います(Terminal.appで見ているように)。

現在、File APIにはトラバースメカニズムはありません。したがって、addressbook-dump.abbu内のより深いネストされたファイルにはアクセスできません。これを可能にする考えはありますか?

それ以外の場合は、OSXユーザーにアドレス帳ファイルのアーカイブ(例:ZIP)を作成し、そのZIPファイル(実際にはJSで読むことができる)をアップロードするように指示する必要があります。これは回避策であり解決策ではありません。

+0

http://www.html5rocks.com/en/tutorials/file/filesystem looks promising – rodneyrehm

答えて

3

理論的には、あなたが説明しているのはFileReader APIです。たとえば、 this demoは.zipファイル(hit load photos.zip)を読み取り、その内容を解凍し、 は、それに含まれる画像のリストをユーザーに表示します。

一般的なフォルダのドラッグアンドドロップの場合、Chrome/WebKitのバックには、12という2つのバグがあります。これらのファイルが修正されると、OSのフォルダを<input type="file" webkitdirectory>にドラッグし、すべての階層をトラバースすることができます。実際にwebkitdirectoryが表示されるようにするには、Chromeのthis demoをご覧ください。

+0

ZIPの例(既に私の質問に記載されています)はかなり悪い回避策です。私は今までファイルシステムAPIについて知りませんでした。それを待つことはできません:) – rodneyrehm

関連する問題