0
我被要求檢索文檔庫的內容並將其顯示在網頁上,並使用MVC下載鏈接。我可以毫無問題地從庫中檢索所有文檔。但是,當文檔存儲在我的文檔庫中的子文件夾中時,我的鏈接只能打開文件夾。以編程方式獲取文件夾共享點的子項
我的文檔庫結構是
- 文檔庫
- 文獻1
- 文獻2
- 文獻3
- 文件夾1
- 文獻4
- 文件夾2
- 文件5
- 文件夾1
我需要能夠從文件夾中獲取子文件而不僅僅是文檔庫中的文檔。
這裏是我的代碼:
namespace SharePointMVC.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
DefaultModel model = new DefaultModel();
List<DocumentModel> documents = new List<DocumentModel>();
List<FolderModel> folders = new List<FolderModel>();
List<object> itemModels = new List<object>();
using (ClientContext context = new ClientContext("MYSPSITE"))
{
List list = context.Web.Lists.GetByTitle("MYDOCUMENTLIBRARY");
context.Load(list);
CamlQuery query = new CamlQuery();
query.ViewXml = "<View/>";
ListItemCollection listitems = list.GetItems(query);
context.Load(list);
context.Load(listitems);
context.ExecuteQuery();
foreach (ListItem listItem in listitems)
{
IEnumerable<object> items = ProcessListItems(listItem);
itemModels.AddRange(items);
}
model.Documents = documents;
}
return View(model);
}
public IEnumerable<object> ProcessListItems(ListItem listItem)
{
List<object> items = new List<object>();
if (listItem.FileSystemObjectType == FileSystemObjectType.Folder)
{
FolderModel FolderModel = new FolderModel();
foreach (ListItem childListItem in listItem.childItems)
{
IEnumerable<object> childItems = ProcessListItems(childListItem);
}
items.Add(FolderModel);
}
else
{
DocumentModel documentModel = new DocumentModel();
items.Add(documentModel);
}
}
public ActionResult About()
{
return View();
}
}
}
任何幫助將不勝感激!
謝謝Rob。我發現這很有用。 –
是否可以在不使用CAML的情況下獲取文件夾的子項目?由於這種方法不適合我的需求。 –