【问题标题】:Reading a file's details in nodejs, regardless of file type在节点 js 中读取文件详细信息,无论文件类型如何
【发布时间】:2015-04-22 00:23:50
【问题描述】:

我目前正在开发一个 nwjs(以前称为 node-webkit)应用程序,用于组织目录中的所有文件,无论类型如何。最终目标是允许我根据多个文件属性将所有文件按字母顺序放置在文件夹中。

一个示例是包含三个文件的文件夹,比如说一个 MP3、一个 WAV 文件和一个 .odt 文件。我需要从这些文件中的每一个中读取一些任意元数据,以便对我应该在哪里组织文件进行“最佳猜测”。

我发现了一些 npm 包用于从各种类型的文件中读取元数据(https://github.com/gomfunkel/node-exif 用于 JPEGS,https://github.com/43081j/id3 用于 MP3 标签),但没有为这种特殊用途预先构建。

如果我自己写,nodejs 中内置的 FS 有什么帮助吗?

【问题讨论】:

  • 无论文件类型如何?不,您需要了解文件格式才能读取其数据。您首先需要知道 JPEG 具有宽度,然后您需要知道它是如何在文件中编码的,以便读取它。这意味着对于每一种元数据,都必须有人编写一个阅读器库。它可能是一个巨大的(不确定是否存在),也可能是一堆很小的,但一个普通的就像一台机器一样不可能,它可以在没有提供食谱或配料表的情况下自行烹饪每一餐。
  • 你提出了一些有效的观点。感谢您的意见。
  • ExifTool (owl.phy.queensu.ca/~phil/exiftool) 接近于做你想做的事。它将识别并从您提到的所有文件类型中提取元数据,等等。唯一的问题是它是一个 Perl 脚本。

标签: javascript node.js node-webkit


【解决方案1】:

对于名为 mmmagic 的节点有一个与 libmagic(file 命令使用的内容)的绑定。有了它,您可以扫描文件并获得每个文件的“最佳猜测”mime 类型。

从那里开始,将检测到的 mime 类型与对每个子目录有效的 mime 类型列表进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 2012-08-07
    相关资源
    最近更新 更多