Вот фрагмент кода с использованием объекта client, решение должно быть аналогичным с использованием ядра sharepoint
List DocumentsList = clientContext.Web.Lists.GetByTitle(list);
CamlQuery camlQuery = new CamlQuery();
camlQuery = new CamlQuery();
camlQuery.ViewXml = @"<View Scope='Recursive'>
<Query>
<Where>
<Eq>
<FieldRef Name=FSObjType />
<Value Type=Integer>0</Value>
</Eq>
</Where>
</Query>
</View>";
ListItemCollection listItems = DocumentsList.GetItems(camlQuery);
clientContext.Load(listItems);
clientContext.ExecuteQuery();
Поля метаданных будут загружены, чтобы найти используемый путь, URL-адрес сервера, разделить его на последние /
все до этого будет путем, все после будет именем файла
если вы не можете получить зависимый от сервера URL-адрес при использовании метаданных
listItem.File.ServerRelitive
URL