/ / Liste des fichiers dans un dossier, dans une liste dans SharePoint 2010 via ses services Web ASMX - c #, .net, services Web, sharepoint, sharepoint-2010

Liste des fichiers dans un dossier, dans une liste dans SharePoint 2010 via ses services Web ASMX - c #, .net, services Web, sharepoint, sharepoint-2010

J'essaie de répertorier le contenu d'un dossier dans SharePoint 2010 en utilisant son service Web.

C'est ce que j'ai jusqu'à présent, dites-moi si je suis trop compliqué si c'est le cas.

XNamespace z = "#RowsetSchema";
string lId = this.GetListID("Account");
string vId = this.GetViewID("All Documents", lId);
//this below, works, I"m getting the unique ID of folder...
string folderId = this.GetListData(lId, vId).Descendants(z + "row").
Where(x => x.Attribute("ows_LinkFilename").Value.Equals("FolderName")).
Select(x => x.Attribute("ows_UniqueId").Value).SingleOrDefault().ToString();

private string GetListID(string listName)
{
string listID;

try
{
XDocument doc = XDocument.Parse(_listClient.GetListCollection().ToString());
listID = (from x in doc.Elements().First().Elements()
where x.Attribute("Title").Value.Equals(listName)
select x.Attribute("ID").Value).FirstOrDefault();
}
catch
{
throw;
}

return listID;
}

private string GetViewID(string viewName, string listID)
{
string viewID = null;

try
{
XDocument doc = XDocument.Parse(_viewClient.GetViewCollection(listID).ToString());
viewID = (from x in doc.Elements().First().Elements()
where x.Attribute("DisplayName").Value.Equals(viewName)
select x.Attribute("Name").Value).FirstOrDefault();

}
catch
{
throw;
}

return viewID;
}

private XDocument GetListData(string listID, string viewID)
{
XDocument list_data = null;

try
{
list_data = XDocument.Parse(_listClient.GetListItems(listID, viewID, null, null, "10000", null, null).ToString());
var q = (from x in list_data.Elements().First().Elements().First().Elements()
select new
{
Title = x.Attribute("ows_LinkTitle").Value,
Field1 = x.Attribute("ows_Field1").Value,
Field2 = x.Attribute("ows_Field2").Value
});
}
catch
{
throw;
}


return list_data;
}

Comme vous pouvez le voir, je peux obtenir l'ID unique du dossier en question. Mais alors quoi? Y a-t-il un autre service Web SharePoint que je dois utiliser avec l'ID de dossier pour obtenir son contenu?

Voici un exemple de la structure de l'URL pour laquelle j'essaye d'obtenir le contenu de:

https://spsite.domain.ca/testenv/account/000001

Le code ci-dessus me récupère l'ID unique du dossier 000001 mais alors je suis coincé là-bas ... je n'en vois pas GetFolderItems ou quelque chose comme ça dans lists.asmx ou d'autres services Web SP.

J'ai vu quelques exemples mais ils utilisent l'assemblage Microsoft.Sharepoint.dll pour ce faire, ce que j'essaie d'éviter.

Je vous remercie!

Réponses:

0 pour la réponse № 1

Je vais utiliser Microsoft.Sharepoint.Client pour ça. Je n'avais aucune idée que SP2010 + offrait une telle fonctionnalité.