代码之家  ›  专栏  ›  技术社区  ›  rodneyrehm

Javascript文件api:迭代目录?

  •  2
  • rodneyrehm  · 技术社区  · 14 年前

    Firefox3.6让我们将目录放到某个元素上(使用拖放API),并使用 FileAPI . 如何处理目录?

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

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

    有什么办法可以做到这两个?

    编辑:

    我可以看到在允许JS遍历目录时出现的(潜在的)问题。我不要求目录遍历本身(尽管我不能绑定到)。我说的是Foo.app被当作一个文件(用户通过Finder.app可以看到),但实际上是一个目录(在Terminal.app中可以看到)。

    文件API当前不提供任何遍历机制。因此,无法访问addressbook-dump.abbu中更深层次的嵌套文件。有什么想法让这成为可能吗?

    否则我就得告诉我的OSX用户把他们的地址簿文件归档(比如ZIP)并“上传”那个ZIP(我可以用JS阅读)。尽管这是一个解决办法,而不是解决办法。

    1 回复  |  直到 13 年前
        1
  •  4
  •   ebidel    13 年前

    理论上,你所描述的是可行的 FileReader 应用程序编程接口。例如, this demo 读取.zip文件(hit load photos.zip),解压缩其内容,然后 向用户显示包含的图片列表。

    对于常规文件夹拖放,有两个错误阻碍了Chrome/WebKit的发展: 1 , 2 . 当它们得到修复后,您就可以将一个文件夹从操作系统拖到 <input type="file" webkitdirectory> 并遍历它的所有层次结构。看 webkitdirectory 行动中,退房 this demo 铬合金的。