I have a loop that is looping through a document library like in the example below.
foreach (SPListItem item in DocumentLibrary)
{
}
How do I tell if the SPListItem
is a document or a folder?
The Folder property of the list item will be null
if the item is not a folder, so you can write:
public bool IsFolder(SPListItem item)
{
return item.Folder != null;
}
In the same way, the File property of the item will be null
if the item is not a document. However, the documentation advises against using this property in that case:
The
File
property also returnsnull
if the item is a folder, or if the item is not located in a document library, although it is not recommended that you call this property in these cases.
An alternate way is to check the BaseType property of the list:
public bool IsDocument(SPListItem item)
{
return !IsFolder(item)
&& item.ParentList.BaseType == SPBaseType.DocumentLibrary;
}