繁体   English   中英

如何区分电影和图像

[英]How to distinguish between movie and image

是否有任何“好”的方式来区分电影文件和图像文件? 我想知道我的“std :: wstring filePath”到底是什么 - 电影或图像。 因此,我可以进一步强有力地保证我正在处理已知的文件类型。

换句话说,我有两个类MYIMAGEMYMOVIE都需要路径,它们的构造函数到文件。 我想在创建其中一个类之前以某种方式验证文件路径。

bool isMovie(const std::wstring & filePath);
bool isImage(const std::wstring & filePath);

当然我考虑过文件扩展名,但我不确定它是否好并且不容易出错。 因此,使用文件扩展名或任何其他可行的解决方案是可行的。

提前致谢

您可以使用libmagic来检测它是什么类型的文件。 您传递文件路径,它将为您提供文件的文本描述或MIME类型。

通常文件具有特殊的所谓魔术字节 我可以控制规范,我会用它。 如果您尝试打开zip,gif或其他二进制文件,通常可以在那里找到一些独特的字符串。

有一个名为file的unix工具实用程序提供了这样的功能,因此可能存在某种标准。

SQLite 3提供了一个很好的例子 1.2.11.2.5 因此,不仅给出了它是SQLite 3 DB的信息,还提供了额外的应用程序ID,因此其他工具可以识别它所在的应用程序的数据库。

当我玩二进制文件时,我个人使用文件的几个第一个字节来为我的文件编码类型和版本信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM