如何使 TagLib# 处理扩展名错误的文件?
我正在使用 TagLib# 从 MP4 文件中检索元数据。到目前为止,一切都很好,直到我发现一个带有“错误”扩展名的文件,这使得 LagLib# 呕吐。我发现这个文件是以 jpg 扩展名保存的,它使 TagLib 抛出异常预期的 SOI 标记在文件的开头。 一些谷歌搜索 我发现这与读取 jpeg 文件有关,
如果我查看它返回的文件的幻数 。 00 00 00 20 66 74 79 70
,对应于正确的签名我
有以下问题:
- 如何在不重命名文件的情况下读取元数据。
- # 如何确定元数据?
TagLib
我使用的代码是这样的:
string file = @"D:\vs2008\Inetpub\wwwroot\Test\data\AA028578_7_2.jpg";
TagLib.File tag = TagLib.File.Create(file);
Console.WriteLine(tag.MimeType);
I'm using TagLib# to retrieve meta data from my MP4 file. So far, so good, everything works fine, until I spotted a file with a "wrong" extension" that made LagLib# puke. I discovered this file was saved with a jpg extension and it made TagLib throw exception Expected SOI marker at the start of the file. After some googling I discovered that this has to do with reading jpeg files.
If I look at the magic number for the file it returns 00 00 00 20 66 74 79 70
, which corresponds with the correct signature for mp4.
I've got the following questions:
- How can I read the meta data without renaming the file.
- How does TagLib# determine meta data?
Any ideas?
Ps. The code I used was like this:
string file = @"D:\vs2008\Inetpub\wwwroot\Test\data\AA028578_7_2.jpg";
TagLib.File tag = TagLib.File.Create(file);
Console.WriteLine(tag.MimeType);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以指定 mime 类型(强制它):
我不知道它是如何加载到 TagLibSharp 中的。
You can specify the mime type (force it):
I don't know how it is loaded in TagLibSharp.
为我工作
worked for me