c# Как найти расширение файла?





5 Answers

Вы можете просто прочитать поток файла

using (var target = new MemoryStream())
        {
            postedFile.InputStream.CopyTo(target);
            var array = target.ToArray();

Первые 5/6 индексы расскажут вам тип файла. В случае FLV его

private static readonly byte [] FLV = {70, 76, 86, 1, 5};

Just do - var isAllowed = array.Take(5).SequenceEqual(FLV);

если да, то его FLV.

ИЛИ

Прочитайте содержимое файла

var contentArray = target.GetBuffer();
                var content = Encoding.ASCII.GetString(contentArray);

Первые две / три буквы сообщают вам тип файла. В случае FLV его

«FLV | \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 ......"

Just do - content.StartsWith("FLV")
c# asp.net

В моем веб-приложении (asp.net, c #) я загружаю видеофайл на страницу, но хочу загрузить только FLV-видео. Как я могу ограничить загрузку других видеороликов?




Я не уверен, что это то, что вы хотите, но:

Directory.GetFiles(@"c:\mydir", "*.flv");

Или:

Path.GetExtension(@"c:\test.flv")



Вы можете проверить подпись .flv. Вы можете скачать спецификацию здесь:

http://www.adobe.com/devnet/flv/

См. Главу «Заголовок FLV».




Это решение также помогает в случаях более чем одного расширения, такого как «Avishay.student.DB»,

                FileInfo FileInf = new FileInfo(filePath);
                string strExtention = FileInf.Name.Replace(System.IO.Path.GetFileNameWithoutExtension(FileInf.Name), "");



string FileExtn = System.IO.Path.GetExtension(fpdDocument.PostedFile.FileName);

Вышеупомянутый метод отлично работает с firefox и IE, я могу просматривать все типы файлов, такие как zip, txt, xls, xlsx, doc, docx, jpg, png

но когда я пытаюсь найти расширение файла с googlechrome, я потерпел неудачу.






Related


Tags

c#   asp.net