首页 > 解决方案 > Sharepoint CSOM 删除文件夹和内容

问题描述

尽管这可行,但它似乎相当冗长。有没有更简洁的方法?使用 CSOM 和 C# .Net Framework 应用程序。真的只想删除文件夹和内容。谢谢。

    public static void DeleteFileAndFolder(string file)
    {
        using (var context = Sharepoint.ClientContext)
        {
            context.Credentials = new NetworkCredential(
                Sharepoint.ExtranetUserName,
                Sharepoint.ExtrantPassword);
            var web = context.Web;
            var list = web.Lists.GetByTitle(Sharepoint.ListTitle);
            var deleteFile = list.RootFolder.FindFiles(file).Single();
            deleteFile.Context.Load(deleteFile.ListItemAllFields);
            deleteFile.Context.ExecuteQuery();
            var folderUrl = deleteFile.ListItemAllFields["FileDirRef"].ToString();
            var folder = deleteFile.ListItemAllFields.ParentList.ParentWeb.GetFolderByServerRelativeUrl(folderUrl);
            deleteFile.Context.Load(folder);
            deleteFile.Context.ExecuteQuery();
            deleteFile.DeleteObject();
            folder.DeleteObject();
            context.ExecuteQuery();
        }
    }

标签: c#sharepointcsom

解决方案


您不需要获取列表,您可以从 Web 对象获取文件夹,请参阅示例以删除文件夹中的文件:

ClientContext ctx = GetCtx();
Folder rootFolder = ctx.Web.GetFolderByServerRelativePath(ResourcePath.FromDecodedUrl("your path here"));
ctx.Load(rootFolder, f => f.Files);
ctx.ExecuteQuery();
foreach (var file in rootFolder.Files)
{
    file.DeleteObject();
}
ctx.ExecuteQuery();

推荐阅读