2011-07-08 12 views

Odpowiedz

13

Właściwość elementu listy Folder będzie null jeśli element nie jest folder, więc można napisać:

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

W ten sam sposób, właściwość elementu File będzie null, jeśli przedmiot nie jest dokumentem. Jednak dokumentacja odradza korzystania z tej nieruchomości w tym przypadku:

Obiekt File zwraca również null jeśli pozycja jest folder, albo jeżeli rzecz nie znajduje się w bibliotece dokumentów, choć jest nie zaleca się, aby w tych przypadkach wywoływać tę właściwość.

Alternatywnym sposobem jest sprawdzenie właściwości BaseType listy:

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

Poprawna odpowiedź 7 minut wcześniej! +0. Życie jest niesprawiedliwe!!! ;) Żartuję też dla ciebie +1. – Mzn

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

jego praca dla mnie .... Dziękujemy – Optimus

4

Używaj SPFileSystemObjectType wyliczenie.
Oto próbka ...

foreach (pozycja SPListItem w docLib.Items)
{
if (item.FileSystemObjectType == SPFileSystemObjectType. Folder)
{
// pozycja jest folder
...
}
else if (item.FileSystemObjectType == SPFileSystemObjectType. pliku)
{
// pozycja jest plikiem
...
}
}

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