开发者

Sharepoint SPFile - Get File Type

I am using SPFile to display a list of files and I want to display the typ开发者_StackOverflowe of file, as a string, so PDF, Word, Excel etc.

Looks like: FileABC PDF FileDEF Excel

I have got the icon back using "ListItem.File.IconUrl", ListItem is SPListItem

But I would like to get the file type as a name. It must work out the file type so the correct image can be displayed but I want to display the words too (for accessibility)


You can simply take the "FileLeafRef" attribute which contains filename + local path, create an System.IO.FileInfo object out of that and then access the .Extension property:

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

I believe it will not be that easy to find matching program for each extension (you mention you need "Excel" not "xls". So, the easiest way, i think, is to create a dictionary of known extensions. Something like this:

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

and then:

oDict[inf.Extension]


You can get the extension from the listitem as ListItem[SPBuiltInFieldId.DocIcon]

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜