2011-07-08 5 views

Répondre

13

La propriété Folder de l'élément de la liste sera null si l'élément est pas un dossier, vous pouvez donc écrire:

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

De la même manière, la propriété File de l'article sera null si l'article n'est pas un document. Cependant, la documentation déconseille l'utilisation de cette propriété dans ce cas:

La propriété File renvoie également null si l'élément est un dossier, ou si l'élément ne se trouve pas dans une bibliothèque de documents, bien qu'il soit pas recommandé que vous appelez cette propriété dans ces cas.

Une autre façon est de vérifier la propriété BaseType de la liste:

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

Bonne réponse 7 minutes plus tôt! +0. La vie est injuste!!! ;) Je plaisante +1 à vous aussi. – Mzn

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

son travail pour moi .... Merci – Optimus

4

Utilisez SPFileSystemObjectType énumération.
est ici un échantillon ...

foreach (article SPListItem dans docLib.Items)
{
if (item.FileSystemObjectType == SPFileSystemObjectType. dossier)
{//
élément est un dossier
...
}
else if (item.FileSystemObjectType == SPFileSystemObjectType. fichier)
{//
article est un fichier
...
}}

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