Определение расширения файла с учетом FileStream - PullRequest
15 голосов
/ 18 января 2012

Есть ли способ узнать тип FileStream.У меня есть функция, которая принимает объект FileStream, и я хочу определить расширение файла на основе этого FileStream.

Ответы [ 3 ]

22 голосов
/ 18 января 2012

Если поток действительно FileStream, тогда вы сможете выполнить следующее

var ext = Path.GetExtension(fileStream.Name);

Если это просто старый Stream, тогда, как правило, получить расширение, как правило, невозможно.Stream может быть создано для любого потока байтов.Это не должно иметь файл поддержки.

Обновление

Поскольку Крис указал в комментариях, есть еще один вопрос SO, который имеет отношение к этому обсуждению.Обсуждается эвристика для определения типа byte[], который затем может быть сопоставлен с вероятной оригинальной подписью.

Он ни в коем случае не является надежным, но может быть полезен длявы.

21 голосов
/ 18 января 2012
 string extension = Path.GetExtension(myFileStream.Name);
4 голосов
/ 18 января 2012

Да, используя имя файла, будет возвращено .txt (включая .):

var path = myFileStream.Name;
return Path.GetExtension(path);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...