Każdy plik zawiera nagłówek, na podstawie którego jest identyfikowany przez system operacyjny. Dla przykładu: plik .bmp dane na swój temat w 54 pierwszych bajtach. Po odczytaniu z bazy danych początku każdego z plików i analizy zawartości tych pierwszych bajtów, możesz zidentyfikować dany plik.
Tu masz przykładowy nagłowek jpg-a:
Cytat
00000000: ff d8 ff e0 00 10 4a 46 - 49 46 00 01 01 00 00 01 ......JF IF......
Jak widzisz, od 7 do 10 bajtu masz tekst JFIF - identyfikator typu pliku jpg.
I tak musisz dla wszystkich typów plików stworzyć sobie bazę/tabelkę sygnatury nagłówków, a potem odczytywac z bazy np. pierwsze 200-300 bajtów pliku i porównywać z takimi sygnaturami.
Polecam Ci stronę
http://www.fileformat.info/index.htm , gdzie masz wszystkie formaty plików opisane "od podszewki", łącznie z hexadecymalnymi ich zrzutami.