// obtain the GUID for the document library and the webID
string documentLibraryGUID = dlNode.Attributes["ID"].Value;
string webId = dlNode.Attributes["WebId"].Value;
Console.WriteLine("Opening
folder '{0}' GUID={1}", documentLibraryName, documentLibraryGUID);
// create ViewFields CAML
XmlDocument
viewFieldsDoc = new XmlDocument();
XmlNode
ViewFields = AddXmlElement(viewFieldsDoc, "ViewFields",
"");
AddFieldRef(ViewFields,
"GUID");
AddFieldRef(ViewFields,
"ContentType");
AddFieldRef(ViewFields,
"BaseName");
AddFieldRef(ViewFields,
"Modified");
AddFieldRef(ViewFields,
"EncodedAbsUrl");
//viewFieldsDoc.Save(@"c:\viewFields.xml"); // for debug
// create QueryOptions CAML
XmlDocument
queryOptionsDoc = new XmlDocument();
XmlNode
QueryOptions = AddXmlElement(queryOptionsDoc, "QueryOptions",
"");
AddXmlElement(QueryOptions,
"Folder", documentLibraryName);
AddXmlElement(QueryOptions,
"IncludeMandatoryColumns", "FALSE");
// this element is the key to getting the full recusive
list
XmlNode
node = AddXmlElement(QueryOptions, "ViewAttributes",
"");
AddXmlAttribute(node,
"Scope", "Recursive");
queryOptionsDoc.Save(@"c:\queryOptions.xml"); // for debug
// obtain the list of items in the document library
XmlNode
listContent = wsList.GetListItems(documentLibraryGUID, null,
null, ViewFields, null,
QueryOptions, webId);
XmlDocument
xmlResultsDoc = new XmlDocument();
xmlResultsDoc.LoadXml(listContent.OuterXml);
ns
= new
XmlNamespaceManager(xmlResultsDoc.NameTable);
ns.AddNamespace("z", "#RowsetSchema");
// xmlResultsDoc.Save(@"c:\listContent.xml"); //
for debug
XmlNodeList
rows = xmlResultsDoc.SelectNodes("//z:row",
ns);
if (rows.Count == 0)
{
Console.WriteLine("No
content found");
}
foreach (XmlNode row in
rows)
{
Console.WriteLine(row.Attributes["ows_ContentType"].Value + " " + row.Attributes["ows_GUID"].Value + " :: " + row.Attributes["ows_BaseName"].Value);
}