2011-07-08 9 views

Respuesta

13

La propiedad Folder del elemento de lista será null si el artículo no es una carpeta, por lo que puede escribir:

public bool IsFolder(SPListItem item) 
{ 
    return item.Folder != null; 
} 

De la misma manera, la propiedad File del artículo será null si el artículo no es un documento. Sin embargo, la documentación desaconseja el uso de esta propiedad en ese caso:

La propiedad File también devuelve null si el elemento es una carpeta, o si el artículo no se encuentra en una biblioteca de documentos, aunque es No se recomienda que llame a esta propiedad en estos casos.

Una forma alternativa es comprobar la propiedad BaseType de la lista:

public bool IsDocument(SPListItem item) 
{ 
    return !IsFolder(item) 
     && item.ParentList.BaseType == SPBaseType.DocumentLibrary; 
} 
2
if (item.Folder!=null) 
    // item is Folder and Folder will hold the SPFolder class 
+1

Respuesta correcta 7 minutos antes! +0. ¡¡¡La vida es injusta!!! ;) Bromeando con +1 a ti también. – Mzn

2
if(item["ContentType"].ToString() == "Folder") 
+0

es su trabajo para mí ... Gracias – Optimus

4

Uso SPFileSystemObjectType enumeración.
He aquí una muestra ...

foreach (artículo SPListItem en docLib.Items)
{
si (== item.FileSystemObjectType SPFileSystemObjectType. carpeta)
{
// elemento es una carpeta
...
}
else if (item.FileSystemObjectType == SPFileSystemObjectType. archivo)
{
// elemento es un archivo
...
}}

0
if (oitem.ContentType.Name == spWeb.AvailableContentTypes[SPBuiltInContentTypeId.Folder].Name) 
         { 
          Console.WriteLine("Folder Name: " + oitem.Name.ToString()); 
         } 
Cuestiones relacionadas