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;
}
Use SPFileSystemObjectType enumeration. Here's a sample...
foreach (SPListItem item in docLib.Items)
{
if (item.FileSystemObjectType == SPFileSystemObjectType.Folder)
{
// item is a folder
...
}
else if (item.FileSystemObjectType == SPFileSystemObjectType.File)
{
// item is a file
...
}
}
if( item["ContentType"].ToString() == "Folder")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With