2011-07-08 11 views

risposta

13

La Folder proprietà della voce di elenco sarà null se l'articolo non è una cartella, in modo da poter scrivere:

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

Allo stesso modo, la proprietà dell'elemento File sarà null se l'articolo non è un documento. Tuttavia, la documentazione consiglia di non utilizzare questa struttura in quel caso:

La proprietà File restituisce anche null se l'elemento è una cartella, o se l'elemento non è situato in una raccolta documenti, anche se è non è consigliabile che tu chiami questa proprietà in questi casi.

Un modo alternativo è quello di verificare la proprietà BaseType della 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

Risposta corretta 7 minuti prima! +0. La vita è ingiusta!!! ;) Sto solo scherzando con te. – Mzn

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

il suo lavoro per me .... Grazie – Optimus

4

Usa SPFileSystemObjectType enumerazione.
Ecco un esempio ...

foreach (SPListItem elemento in docLib.Items)
{
se (item.FileSystemObjectType == SPFileSystemObjectType. Cartella)
{
// elemento è una cartella
...
}
else if (item.FileSystemObjectType == SPFileSystemObjectType. File) .210 {
// oggetto è un file
...
}}

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