2

Firefox 3.6 让您将目录拖放到某个元素上(使用 Drag And Drop API)并使用FileAPI处理这些文件。这如何与目录一起使用?

Mac OS X Finder 将一些目录显示为文件(.app、.tmbundle、.abbu、...)。在大多数情况下,这很棒。在通过 File- 和 DND-API 与浏览器交互的情况下,它不是。最终用户无法区分真实文件和类似 my-addressbook-backup.abbu 的文件。

因此,Javascript UI 必须能够识别目录结构。如果它不能遍历结构,它必须相应地通知用户。

关于如何实现的任何想法?

编辑:

我可以看到允许 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:12。当这些得到修复时,您将能够将文件夹从操作系统拖到一个<input type="file" webkitdirectory>并遍历其所有层次结构。要查看实际效果,请在 Chrome 中webkitdirectory查看此演示。

于 2011-10-20T22:12:56.527 回答