Как вы проверяете тип файла, когда нет расширения в C#
Как вы проверяете тип файла, когда нет расширения в C#
Например, у меня есть файлы без расширения, которые имеют формат.mp4 или.flv (просто без расширения). Я планирую преобразовать эти видеофайлы в аудиофайлы, однако я хотел бы определить тип файла, прежде чем начать его преобразование. Есть ли способ сделать это в C#?
Я подумал, что, возможно, я мог бы просто переименовать файл в name.mp4, а затем выполнить какую-то задачу с файлом, который либо A) завершился бы успешно, означая, что файл действительно был.mp4 или B), но в таком случае я мог бы тогда переименуйте его в.flv
затем конвертируйте файл как соответствующее расширение. Есть ли в C# собственный процесс, который может просматривать свойства.mp4 или.flv? Я не хочу переименовывать файл в.mp4, а затем открывать его в стороннем приложении, таком как Windows Media Player, чтобы посмотреть, правильно ли я его назвал.
2 ответа
Я слышал о том, что прочитал первые несколько байтов содержимого файла и сделал обоснованное предположение о формате файла. Эта ссылка кажется многообещающей:
Используя.NET, как вы можете найти MIME-тип файла на основе сигнатуры файла, а не расширения
Я играл в эту утилиту ( TrID - Идентификатор файла) и кажется довольно точным. Пакет определения типа файла (TrIDDefs) также актуален.
А вот список таблиц сигнатур типов файлов, если вы заинтересованы. Список продолжает работать в процессе.