我想以编程方式删除文件夹。
我为此写的代码
function deleteFile(fileUrlParam) {
var ctx = SP.ClientContext.get_current();
this.web = ctx.get_web();
ctx.load(this.web, 'Include(Title, Id, Created, ServerRelativeUrl)');
context.load(web);*/
ctx.executeQueryAsync(onDeleteGetFileUrl(fileUrlParam), onDeleteFileFailure);
}
function onDeleteGetFileUrl(fileUrlParam) {
var context = SP.ClientContext.get_current();//gets the current context
var web = context.get_web(); //gets the web object
var fileUrl = 'https://stackoverflow.com' + fileUrlParam;
var fileToDelete = this.web.getFileByServerRelativeUrl(fileUrl);
fileToDelete.deleteObject();
context.executeQueryAsync(onDeleteFileSuccess, onDeleteFileFailure);
}
function onDeleteFileSuccess() {
alert("File got deleted");
}
function onDeleteFileFailure(sender, args) {
alert('Failed to delete a file. Error:' + args.get_message());
}
但它会出错。由于共享点语言是土耳其语,因此错误也是土耳其语,它表示
'Geçersizistek'
我不知道英语中的完全匹配,但它意味着“无效请求”或类似的那样
答案 0 :(得分:1)
好像你从这里得到了代码: http://www.c-sharpcorner.com/UploadFile/0e18a8/delete-a-file-in-a-document-library-in-sharepoint-2013-using/
您确定要正确执行所有步骤吗? 上下文中的Web是否正确加载? 您使用的是正确的WEB网址吗?
您是否删除了此行中的评论或是否为拼写错误?
context.load(web);*/
你能尝试使用PowerShell / Server端代码做同样的事情,这可能是另一个问题吗? 我想你需要提供更多细节。
答案 1 :(得分:0)
使用SP.Web.getFolderByServerRelativeUrl method返回位于指定服务器相对URL的文件夹对象,然后SP.Folder.deleteObject() Method删除Folder对象。
function deleteFolder(folderUrl,success,error){
var context = SP.ClientContext.get_current();
var web = context.get_web();
var folder = web.getFolderByServerRelativeUrl(folderUrl);
folder.deleteObject();
context.executeQueryAsync(
function() {
success();
},
error
);
}
用法
deleteFolder('/project/Shared Documents/Orders/',
function(){
console.log('Folder has been deleted');
},
function(sender,args){
console.log(args.get_message());
}
);
注意:由于SP.Web.getFolderByServerRelativeUrl
方法需要服务器相对Url,因此您基本上可以使用以下格式指定文件夹Url:
/project/Shared Documents/Orders/
- /<WebRelativeUrl></ListUrl>/<FolderUrl>
Shared Documents/Orders/
- 当前网站的相对网址
由<ListUrl>/<FolderUrl>