2016-03-21 4 views
-2

Je souhaite afficher une icône basée sur l'extension du fichier.Extension de fichier C# à la classe font-awesome

filename.xls deviendrait < classe i = "fa fa-file-excel-o"> </i>

Dans une classe que je qualifierais une méthode pour extraire l'extension (par exemple .xls) et la méthode me fournirait le nom complet (par exemple excel) qui peut être réglé entre fa-file- et -o. Je n'ai rien trouvé qui puisse aider à faire le travail. Le meilleur que je pourrais trouver est une fonction de jQuery:

function GetAttachmentClass(extension) { 
    var classes = new Array ('avi','bmp','css','doc','gif','htm','jpg','js','mov','mp3','mp4','mpg','pdf','php','png','ppt','rar','txt','xls','xml','zip'); 

    if (jQuery.inArray(extension, classes) < 0) { 
     return 'unknown'; 
    } 
    else { 
     return extension; 
    } 
} 

mais ce n'est pas ce dont j'ai besoin. J'ai besoin qu'il soit en C# dans la méthode pour que je puisse réutiliser cette fonction chaque fois que je fais quelque chose de similaire.

Ma méthode à ce jour:

private void GetAttachmentClass(string extension) 
{ 
    string[] classes = new string[] {"avi", "bmp", "css", "doc", "gif", "htm", "jpg", "js", "mov", "mp3", "mp4", "mpg", "pdf", "php", "png", "ppt", "rar", "txt", "xls", "xml", "zip" }; 
    if (classes.Contains(extension)) 
    { 

    } 

} 
+0

les extensions magasin au nom de la classe dans un dictionnaire. –

+0

donc vous voulez passer dans l'extension et obtenir une icône personnalisée? ou voulez-vous que la méthode retourne quelque chose comme "page html" lorsque vous passez en .htm? – Jay

Répondre

0

Si vous voulez que votre méthode pour faire ce que la méthode jQuery fait, cela fonctionne:

private string GetAttachmentClass(string extension) 
    { 
     string[] classes = new string[] {"avi", "bmp", "css", "doc", "gif", "htm", "jpg", "js", "mov", "mp3", "mp4", "mpg", "pdf", "php", "png", "ppt", "rar", "txt", "xls", "xml", "zip" }; 
     if (classes.Contains(extension)) 
     { 
      return extension; 
     } 

     return "unknown"; 
    } 

Cela renverra l'extension, si elle existe dans le tableau, ou "inconnu" si ce n'est pas le cas.

Si vous souhaitez mapper l'extension à un nom, vous pouvez configurer un dictionnaire contenant l'extension et le nom que vous souhaitez revenir:

private string GetAttachmentClass(String extension) 
{ 
    Dictionary<string,string> extensionTypes = new Dictionary<string,string> 
    { 
     {"htm", "HTML Page"}, 
     {"xls", "Excel"} 
    }; 

    if(extensionTypes.ContainsKey(extension)) 
    { 
     return extensionTypes[extension]; 
    } 
    return "unknown"; 
} 

Ceci renvoie la valeur, ou « inconnu » si l'extension n'existe pas dans le dictionnaire: par exemple. xls renvoie Excel.

Vous pouvez définir la valeur comme étant ce dont vous avez besoin.

-1

Si vous voulez extraire l'icône pour le fichier que vous pouvez utiliser quelque chose comme ceci:

var icon = Icon.ExtractAssociatedIcon(@"d:\1.png"); 

This is MSDN article for this method.

1

ne reçois pas clairement ce que vous essayez de faire, mais ici est un moyen de vérifier l'extension que vous ont récupéré.

 using System.IO; 

    private static void DisplayIcon(string extension) 
    { 
     string extensionArray = { "avi", "bmp", "css", "doc", "gif", "htm", "jpg", "js", "mov", "mp3", "mp4", "mpg", "pdf", "php", "png", "ppt", "rar", "txt", "xls", "xml", "zip" }; 

     var ext = System.IO.Path.GetExtension(""); 

     for (int i = 0; i < extensionArray.Count(); i++) 
     { 
      if (extensionArray[i].Equals(extension)) 
      { 
       // Appropriately return extension here 
      } 
     } 
    } 

Et vous pouvez appeler la méthode comme celui-ci

DisplayIcon(Path.GetExtension(@"C:\myFile.xlsx"));