如何判断文件类型?

我需要知道,如果我的文件是音频文件:MP3,WAV,等...
如何做到这一点?

--------------解决方案-------------

那么,最可靠的方法是写一个解析器要检测,然后只是尝试的文件类型 - 如果没有错误,这是很明显,你尝试过的类型。 这是一种昂贵的方法,但是,但它会保证你可以成功地加载该文件,以及因为它也会检查语义稳健性文件的其余部分。

一个更便宜的变体将是寻找“神奇”的字节 - 在开始签名或文件的已知的偏移量。 例如,如果一个文件开始的ID3标签,你可以确信这是一个MP3文件。 如果一个文件开始RIFF¼↕☻ WAVEfmt那么它是一个WAV文件。 然而,这样的检测也不能保证你的文件确实是这种类型的 - 它可能只是签名及以下的垃圾。

虽然你可以使用扩展做出合理的猜测,该文件也不能保证什么工作的时间100%。 如果你是针对Windows,然后会工作99.9%的时间,这是Windows如何跟踪哪些文件是什么类型。

如果是从非Windows让你的文件来源的唯一可靠的方法是打开该文件,并寻找一个特定字符串或一组字节,这将明确地识别它。 例如,你可以看看的ID3标签的MP3文件:

该的ID3v1标签占用128字节,字符串变量开始。

要么

ID3v2的标签是可变大小的,且通常发生在文件的开始,以有助于流媒体。

多远你走取决于您希望如何强大的解决方案是,而且也依赖于那里是一个页眉或图案是始终存在。

这样做,这样可以帮助防止恶意内容,其中有人张贴了一个恶意软件作为一个MP3文件(说),希望它只是被一个程序容易出现一些漏洞(缓冲区溢出也许)运行。

Path.GetExtension(PathToFile)

看到这个帖子。 你最终从文件通过第一(最大)256字节的数据来FindMimeFromData(所述Urlmon.dll的的一部分)。

如果您需要了解该文件的MIME类型,那么这个讨论可以帮助你:
使用.NET,你怎么能找到基于文件的签名而不是扩展名的文件的MIME类型。

您可以使用文件扩展名来弄清楚:

using System.IO;

class Program
{
static void Main()
{
string filepath = @"C:\Users\Sam\Documents\Test.txt";

string extension = Path.GetExtension(filepath);
if (extension == ".mp3")
{
Console.WriteLine(extension);
}
}
}

文件扩展名是调用的第一个点的操作系统要弄清楚什么文件类型,它在处理,如果你真的想知道文件类型100%,做到这一点是读入文件的唯一途径。 但这种带有一个抓,图像文件很容易,因为它们包含一个非常简单的标题阅读的格式,但它可以得到一个稍微复杂了完全可变的文件类型。

你可以检查出的旧岗位的一点帮助这个职位。 这是一个关于寻找只是媒体文件类型职位。

最终它取决于为什么你试图做到这一点。

分类:C# 时间:2012-01-01 人气:2
本文关键词: C#,文件,MP3,音响
分享到:

相关文章

  • 我无法看到Windows媒体播放器的MP3文件MP3标记。 2012-08-13

    你好, 我没有看到MP3标记出现任何我的5000 +的MP3. 当在文件浏览器,我右击并转到属性时,MP3领域的所有报表空. Windows Media Player的未知分类下的所有歌曲. 我已经运行为WMP的设置和库疑难解答. 没有运气. 我认为主要问题在于,为什么文件浏览器未能显示出任何标签的信息. 我跑"SFC / SCANNOW",它只是发现的问题用的termsrv.dll它固定的,我已经重新启动. 仍与图书馆没有运气. 原标题:文件资源管理器和WMP12不显示MP3 ID3

  • 播放URL直接给出的MP3文件MP3 2013-04-22

    我希望能够在(例如http://www.somedomain.com/audio.mp3)给出的URL我的Andr​​oid应用程序播放MP3文件. 这个我想应该使用使用InputStream可能得到一个字节数组,但我不能完全确定,然后可以用MediaPlayer对象使用. --------------解决方案------------- 通读SDK页面. 从文件或流式播放 我在实际生活中发现,如果你照顾到任何空格字符(0x20的)重新格式化为"%20"在MediaPlayer可刚玩任何

  • PHP - 转换.wav文件.MP3? 2013-08-04

    我想知道如果任何人有编码用户上传的.wav文件名为.mp3扩展任何意见. 我想,如果能够建立一个PHP的解决方案. 我可以调用通过PHP命令行编码器LAME一旦文件被上传? 有没有更好的选择吗? 谢谢! --------------解决方案------------- 来吧,叫LAME. 一个更好的选择的没有机会存在的,更是这样,如果你把编码器质量因素. 打电话到外部的二进制最简单的方法是exec ,而在编码过程中的最佳集成,您可能需要使用proc_open . 我写了LAME的包装,提供了方便的

  • 从远程文件MP3信息 2014-09-24

    我玩弄与iPhone SDK和我想从一个远程文件获取MP3信息: NSString *filepath = @"http://www.server.com/legal.mp3"; CFURLRef audioFileURL = CFURLCreateWithString(NULL, (CFStringRef) filepath, NULL); AudioFileID audioFile; if (noErr != AudioFileOpenURL(audioFileURL, fsRdP

  • 如何SoundEffectInstances合并成一个新的声音文件/ MP3或WAV 2015-02-02

    我工作在新的WindowsPhone平台上. 我有我想合并成一个新的单一声音文件(或者SoundEffectInstance,SoundEffect中或MediaElement的,没关系).那么我想该文件保存为一个MP3到手机SoundEffectInstance几intances. 我怎么做? 通常情况下,我会尝试发送所有文件的ByteArray,但我不知道这是这里的正确方法,或者如何的ByteArray转换成MP3格式的声音. 因此,例如我有SoundEffectInstance soudB

  • 如何删除这个文件mp3.1wv1e1v 2012-02-22

    嗨, 我下载了这个文件,该文件说,这是设置为IE浏览器中打开,但它可以通过Windows媒体播放器上播放,但我已经是它与同名的副本不同的是它没有多余的信后,即1wv1e1v. 当我尝试删除它,我得到这个消息 - 文件正在被使用 无法完成操作,因为文件在Internet Explorer中打开. 关闭并再次打开该文件. 那么下面我们就 - 文件名:(如上) 文件类型:Windows媒体播放器 尺寸:.................. 修改日期:............. 会感谢你的帮助. ---

  • 无法下载文件.MP3电脑 2012-10-23

    下载MP3的 为什么不能下载我的MP3我的电脑? --------------解决方案------------- 嗨musiclover53, 1)您具体是如何刻录光盘? 2)哪些软件你用它来刻录CD? 3)你刻录光盘作为数据光盘或音频CD? 我想知道,如果刻录的CD播放罚款在计算机上. 一张DVD \ CD可能无法在某些DVD播放任何下列原因正常播放: · 光盘类型可能不兼容.一些DVD播放机或DVD-ROM驱动器只能播放特定类型的DVD. 例如,一些DVD播放机只能播放DVD + R或DVD

  • WMP音乐文件MP3播放器 2014-05-24

    在成功地传送的音乐文件到播放器,我现在看到下面的对话; 你要扫描和修复可移动磁盘(F :) 选项; (1)扫描和修复 (2)继续而不扫描 我第一次看到这个消息,我点击扫描和修复,但现在,我得到这个消息,每次我转files.It可能只是一个巧合,但这个,因为我安装磁盘Fragmenter计划的Diskeeper 2010家庭版才开始发生. 任何帮助和建议将受到欢迎. 伯恩结束FlyerPrograms您有问题 错误信息 您在计算机所做的最新更改 你已经尝试解决问题 --------------解决

  • 通过RTP发送MP3文件 2012-02-25

    我想送的RTP包文件.MP3到客户端. 我所知道的是,我从.MP3文件中多少字节到达发送每个RTP包中,这是.MP3文件我在每个RTP数据包的有效载荷字段地方,有多少个字节? 谢谢您的帮助. 您好! --------------解决方案------------- 你应该看看RFC 5219 - 更有损失容错RTP负载格式为MP3音频. 这不是简单的"有多少字节......". 这还引用旧的RFC MP3.

  • 如何让预期的电子邮件收件人是唯一一个谁可以打开我的密码保护的MP3文件 2012-08-22

    原标题:密码保护文件MP3 我如何用密码保护的MP3文件,使预期的电子邮件收件人(谁的密码)是唯一一个谁可以打开和听呢? --------------解决方案------------- 嗨WillL_1955, ·什么是安装在计算机上的操作系统? 你可以尝试以下. 方法1:将MP3文件压缩成zip文件,设置上的zip文件的密码,并告诉只是朋友的密码. 如何创建和使用Windows XP压缩(zipped)文件夹 压缩和Windows 7中解压缩文件(zip文件) 方法2:你可以找一个第三方程序,

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.613 (s). 10 q(s)