2

Firefox 3.6では、(ドラッグアンドドロップAPIを使用して)ディレクトリをいくつかの要素にドロップし、FileAPIを使用してそれらのファイルを処理できます。それはディレクトリでどのように機能しますか?

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

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

どちらをどのように達成できるかについてのアイデアはありますか?

編集:

JSがディレクトリをトラバースできるようにするときに発生する(潜在的な)問題を確認できます。私はディレクトリトラバーサル自体を要求していません(ただし、できることをバインドすることはできません)。私はFoo.appがファイルとして扱われている(Finder.appを通してユーザーに見られるように)が、実際にはディレクトリである(Terminal.appで見たときに見られるように)ことについて話している。

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

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

4

1 に答える 1

4

理論的には、あなたが説明することはFileReaderAPIで実行可能です。たとえば、 このデモでは、.zipファイルを読み取り([photos.zipの読み込み]をクリック)、その内容を解凍して、含まれている画像のリストをユーザーに表示します。

一般的なフォルダのドラッグアンドドロップの場合、Chrome / WebKitを妨げる2つのバグがあります1、2。それらが修正されると、フォルダをOSからにドラッグして、そのすべての階層をトラバースできるようになります。実際の動作を確認するには、Chromeでこのデモをご覧ください。<input type="file" webkitdirectory>webkitdirectory

于 2011-10-20T22:12:56.527 に答える