2011-07-08 28 views

Trả lời

13

Thuộc tính của mục danh sách Folder sẽ null nếu mục không phải là một thư mục, vì vậy bạn có thể viết:

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

Trong cùng một cách, các File tài sản của mặt hàng đó sẽ null nếu mặt hàng không phải là tài liệu. Tuy nhiên, các tài liệu khuyên không nên sử dụng tài sản này trong trường hợp đó:

Thuộc tính File cũng trả null nếu mục là một thư mục, hoặc nếu mục không nằm trong một thư viện tài liệu, mặc dù nó là không khuyến nghị rằng bạn gọi thuộc tính này trong những trường hợp này.

Một cách thay thế là để kiểm tra BaseType tài sản của danh sách:

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

đúng câu trả lời 7 phút trước đó! +0. Cuộc sống thật bất công !!! ;) Chỉ đùa với bạn thôi. – Mzn

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

công việc của nó đối với tôi .... Cảm ơn – Optimus

4

Sử dụng SPFileSystemObjectType liệt kê.
Dưới đây là một ví dụ ...

foreach (SPListItem mục trong docLib.Items)
{
if (item.FileSystemObjectType == SPFileSystemObjectType. Thư mục)
{
// mục là một thư mục
...
}
else if (item.FileSystemObjectType == SPFileSystemObjectType. file) .210 {
// liệu là một file
...
}
}

0
if (oitem.ContentType.Name == spWeb.AvailableContentTypes[SPBuiltInContentTypeId.Folder].Name) 
         { 
          Console.WriteLine("Folder Name: " + oitem.Name.ToString()); 
         } 
Các vấn đề liên quan