164 votes

Comment trouver l'extension d'un fichier dans C# ?

Dans mon application web (asp.net,c#), je télécharge un fichier vidéo dans une page, mais je ne veux télécharger que des vidéos flv. Comment puis-je restreindre lorsque je télécharge d'autres vidéos d'extension ?

315voto

James Points 40024

Path.GetExtension

string myFilePath = @"C:\MyFile.txt";
string ext = Path.GetExtension(myFilePath);
// ext would be ".txt"

26voto

Mukul Yadav Points 11

Vous pouvez simplement lire le flux d'un fichier

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

Les premiers index 5/6 vous indiqueront le type de fichier. En cas de FLV ses 70, 76, 86, 1, 5.

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

bool isAllowed = array.Take(5).SequenceEqual(FLV);

si isAllowed est égal true alors son FLV.

OU

Lire le contenu d'un fichier

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

Les deux/trois premières lettres vous indiqueront le type de fichier.
En cas de FLV, son "FLV......"

content.StartsWith("FLV")

7voto

Mark Dickinson Points 4276

Sur le serveur, vous pouvez vérifier le type MIME, le type mime flv de recherche ici ou sur google.

Vous devez vérifier que le type mime est

video/x-flv

Si vous utilisiez un FileUpload en C# par exemple, vous pourriez faire

FileUpload.PostedFile.ContentType == "video/x-flv"

5voto

Papun Sahoo Points 61
string FileExtn = System.IO.Path.GetExtension(fpdDocument.PostedFile.FileName);

La méthode ci-dessus fonctionne bien avec le Firefox et IE : Je suis capable de voir tous les types de fichiers comme zip,txt,xls,xlsx,doc,docx,jpg,png.

Mais quand j'essaie de trouver l'extension de fichier de Google Chrome, j'échoue.

5voto

Carra Points 6832

Je ne sais pas si c'est ce que vous voulez mais :

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

Ou :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X