2010-03-03 6 views
0

J'utilise SPFile pour afficher une liste des fichiers et je veux afficher le type de fichier, sous forme de chaîne, de sorte que PDF, Word, Excel, etc.Sharepoint SPFile - Obtenez Type de fichier

On dirait: FileABC PDF FileDEF Excel

J'ai eu l'icône de retour avec « ListItem.File.IconUrl », ListItem est SPListItem

Mais je voudrais obtenir le type de fichier comme un nom. Il faut travailler le type de fichier pour que l'image correcte puisse être affichée mais je veux aussi afficher les mots (pour l'accessibilité)

Répondre

1

Vous pouvez simplement prendre l'attribut "FileLeafRef" qui contient le nom de fichier + le chemin local, créer un objet System.IO.FileInfo sur ce, puis accéder à la .Extension propriété.

System.IO.FileInfo inf = new System.IO.FileInfo("/images/files/something.gif"); 
Console.WriteLine(inf.Extension); //outputs .gif 

Je crois qu'il ne sera pas facile de trouver le programme correspondant pour chaque extension (vous mentionnez que vous avez besoin « Excel » et non « xls » donc, la meilleure façon , je pense, est de créer un dictionnaire des extensions connues.Par exemple:

System.Collections.Specialized.StringDictionary oDict = new System.Collections.Specialized.StringDictionary(); 
oDict.Add(".xls", "Excel"); 
oDict.Add(".xlsx", "Excel"); 
oDict.Add(".doc", "Word"); 

puis:

oDict[inf.Extension] 
1

Vous pouvez obtenir l'extension de la listitem comme ListItem [SPBuiltInFieldId.DocIcon]