Как вы проверяете тип файла, когда нет расширения в C # - PullRequest
3 голосов
/ 17 марта 2012

Как вы проверяете тип файла, когда в c #

нет расширения? Например, у меня есть файлы без расширения, которые имеют формат .mp4 или .flv (просто без расширения).Я планирую преобразовать эти видеофайлы в аудиофайлы, однако я хотел бы определить тип файла, прежде чем начать его преобразование.Есть ли способ сделать это в C #?

Я подумал, что, возможно, я мог бы просто переименовать файл в name.mp4, а затем выполнить некоторую задачу с файлом, который либо A) завершился бы успешно, означая, что файл действительно был .mp4 или B),в этом случае я мог бы затем переименовать его в .flv

, а затем преобразовать файл как соответствующее расширение.Есть ли в c # собственный процесс, который может просматривать свойства .mp4 или .flv?Я не хочу переименовывать файл в .mp4, а затем открывать его в стороннем приложении, таком как Windows Media Player, чтобы посмотреть, правильно ли я его назвал.

Ответы [ 2 ]

3 голосов
/ 17 марта 2012

Я играл в эту утилиту ( TrID - Идентификатор файла ) и кажется довольно точным. Пакет определения типа файла (TrIDDefs) также актуален.

И Здесь - это список таблиц сигнатур типов файлов, если вас это интересует. Список продолжает работать в процессе.

3 голосов
/ 17 марта 2012

Я слышал о том, что прочитал первые несколько байтов содержимого файла и сделал обоснованное предположение о формате файла.Эта ссылка выглядит многообещающей:

Используя .NET, как вы можете найти mime-тип файла на основе сигнатуры файла, а не расширения

...