c# - 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();
}
}
解决方案
您不需要获取列表,您可以从 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();
推荐阅读
- javafx - javafx.fxml.LoadException - ?
- python - 在字典中返回值的函数
- android - 从 Android 应用程序中读取 Google 电子表格并列出该数据?
- python - TypeError:('关键字参数不理解:','输入')
- crystal-reports - 水晶报表页码
- android - 用于检索数据的 SQLite 查询 Order By
- javascript - 限制用户对消息的反应
- algorithm - 竞争性编程 - 使用 P、Q 和 R 成分准备完美的咖喱
- xml - 使用 XSD 验证 XML。错误:架构无效或缺少命名空间
- android - 当设备安装在移动的车辆上时,Compass App Roll/Y 值不变