The following
code block will check the given folder name existence, and create the folder,
inside the given list. This will also return the Folder object.
private
SPFolder
GetFolder(string
folderName, SPWeb
web, SPList
list)
{
SPListItem
item = null
;
SPQuery
sq = new
SPQuery
();
// CAML query to search folder
sq.Query = "<Where>"
+
"<And>"
+
"<Eq>"
+
"<FieldRef Name='Title' />"
+
"<Value Type='Text'>"
+ folderName
+ "</Value>"
+
"</Eq>"
+
"<Eq>"
+
"<FieldRef Name='ContentType' />"
+
"<Value
Type='Text'>Folder</Value>"
+
"</Eq>"
+
"</And>"
+
"</Where>"
;
SPListItemCollection
itemCol =
list.GetItems(sq);
if
(itemCol.Count > 0)
{
item
= itemCol[0]; // get the folder item object
}
if
(item
== null
) // if no
such folder name found, create
{
web.AllowUnsafeUpdates
= true
; // important
step
item
= list.Items.Add(""
, SPFileSystemObjectType
.Folder, folderName);
item["Name"
]
= folderName;
// This
is required to be set to see on search results
item["Title"
]
= folderName;
item.Update();
}
return
item.Folder;
}
Note:
It’s
very important to set the
“web.AllowUnsafeUpdates = true
”
for such code level folder creations.