C# Sharepoint CSOM正在删除文件夹和内容

C# Sharepoint CSOM正在删除文件夹和内容,c#,sharepoint,csom,C#,Sharepoint,Csom,虽然这样做有效,但似乎相当冗长。有没有更简洁的方法?使用CSOM和C#.Net Framework应用程序。真的只是想删除文件夹和内容。谢谢 public static void DeleteFileAndFolder(string file) { using (var context = Sharepoint.ClientContext) { context.Credentials = new NetworkCredent

虽然这样做有效,但似乎相当冗长。有没有更简洁的方法?使用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();
        }
    }

您不需要获取列表,您可以从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();