通过编程方式从sharepoint文件夹中删除文件

时间:2014-05-29 14:30:51

标签: javascript sharepoint sharepoint-2010

我想以编程方式删除文件夹。

我为此写的代码

 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'

我不知道英语中的完全匹配,但它意味着“无效请求”或类似的那样

2 个答案:

答案 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对象。

如何通过SharePoint 2010中的CSOM(JavaScript)删除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>
  • 组成