Question: How can I determine that a particular file (which may or may not have an ".mp3" file extension) is in fact an MP3 file? I wish to do this in C#.

Answer: 
According to <http://www.garykessler.net/library/file_sigs.html> an mp3 file will always start with ID3 (hex 49 44 33) However, presence of these bytes only mean that the file is tagged with [ID3 information](http://en.wikipedia.org/wiki/ID3). If this signature is not found, it could be an untagged mp3 file. To determine this, check out [the mp3 file structure](http://en.wikipedia.org/wiki/MP3#File_structure) and you'll see that an mp3 frame starts with the signature ff fb (hex).

So :

* if file starts with hex `49 44 33`

or

* if file starts with hex `ff fb`

it's safe to assume that it's an MP3.
```
string[] filePath = Directory.GetFiles(fbdialog.SelectedPath.ToString(),".mp3", 
                                       SearchOption.AllDirectories);

foreach (string str in filePath)
{
    MessageBox.Show("It's mp3 file");
}

```