Я использую подход C# для объектной модели на стороне клиента, чтобы получить все элементы списка из библиотеки документов, содержащей подпапки. Я проверил документацию MSDN, и я зациклился на том, почему я не могу получить свойство поля, или если я даже делаю это правильно.Извлечь все документы из всех подпапок в библиотеке документов - CSOM
NetworkCredential credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
ClientContext clientcontext = new ClientContext(Resources.defaultSPSite);
clientcontext.Credentials = credentials;
//Load Libraries from SharePoint
//Web site = clientcontext.Web;
clientcontext.Load(clientcontext.Web.Lists);
clientcontext.ExecuteQuery();
//List sharedDocumentsList = clientcontext.Web.Lists.GetByTitle("TestLDOCS");
//CamlQuery camlQuery = new CamlQuery();
//camlQuery.ViewXml = @"<View Scope='Recursive'><Query></Query></View>";
foreach (List list in clientcontext.Web.Lists)
{
clientcontext.Load(list);
clientcontext.ExecuteQuery();
//list.TemplateFeatureId.ToString().Equals("") &&
string baseType = list.BaseType.ToString();
string listTitle = list.Title.ToString();
if (list.BaseType.ToString().Equals("DocumentLibrary", StringComparison.InvariantCultureIgnoreCase) && list.Title.ToString().Equals("TestLDOCS", StringComparison.InvariantCultureIgnoreCase))
{
foreach (Folder subFolder in list.RootFolder.Folders)
{
foreach (File f in subFolder.Files)
{
Console.WriteLine((string) f.Title);
}
}
}
}
}
ошибка, что я получаю то, что «Еогеасп (File е в subFolder.Files)» сбор не может быть инициализирован ошибка. В любом случае, чтобы получить значения полей всех документов в каждой подпапке в библиотеке документов с использованием CSOM?
Я знаю, что вы можете строго ввести значения полей также с элементом списка ie (listItem ["fieldName"]). Должен ли я идти по этому маршруту?
Ваш подход кажется действительно хорошим, но я получаю NotSupportedException на 'items.Select (i => i.File) ' – Santhos