O SharePoint já vem com ícones para ficheiros, usados principalmente em listas. Podemos fazer uso destes mesmos ícones, por exemplo, em custom web parts ou custom controls.
Primeiro, precisamos de saber onde e como o SharePoint guarda estes ícones.
As imagens são guardadas na pasta images na 12 hive:
Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES
Isto é mapeado na directoria virtual:
/_layouts/images
Existe também um ficheiro XML com informação de como mapear um tipo de ficheiro ou extensão ao ícone apropriado. Este ficheiro pode ser encontrado em:
Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML\DOCICON.xml
Se quiserem adicionar ícones para tipos de ficheiros desconhecidos ou alterar ícones existentes, podem actualizar o ficheiro DOCICON.xml
e colocar as imagens na pasta mencionada acima.
Para fazer esta associação programaticamente, o SharePoint tem o método MapToIcon, disponível na classe SPUtility
no namespace Microsoft.SharePoint.Utilities
.
Para ir buscar o caminho para o ficheiro do ícone, o seguinte código pode ser usado:
string iconPath = "/_layouts/images/" + SPUtility.MapToIcon(web, filename, string.Empty);
- O primeiro parâmetro é a web onde o ficheiro está localizado (normalmente
SPContext.Current.Web
). - O segundo é o nome do ficheiro (e.g. "test.docx").
- O terceiro é a identificação da aplicação que foi usada para criar o ficheiro (pode ser usada uma string vazia como argumento).
Para ajudar a ir buscar o nome do ficheiro, há também outro método útil: GetUrlFileName. Passando o URL a este método, ele devolve o nome do ficheiro. E.g.:
string filename = SPUtility.GetUrlFileName("http://test.mossdevdomain.com/SiteCollectionDocuments/test.docx");