繁体   English   中英

通过 Graph API/SDK 删除锁定/打开的文件

[英]Delete locked/open file via Graph API/SDK

我正在尝试通过 Graph SDK 删除文档库(SharePoint Online)中的文件

await client
    .Drives[driveId]
    .Items[sourceItemId]
    .Request()
    .DeleteAsync();

这项工作。 但是如果文件是打开的,它会抛出这个错误:

Status Code: Locked
Microsoft.Graph.ServiceException: Code: resourceLocked
Message: The resource you are attempting to access is locked

无论如何,我如何强制它删除?

如果我尝试通过 SharePoint 在线用户界面(浏览器)删除打开的文件,则会出现一个弹出窗口,提示它已被锁定,但我仍然可以选择删除它。 因此可以删除锁定/打开的文件。 他们只是忘了在这里记录它https://docs.microsoft.com/en-us/graph/api/driveitem-delete?view=graph-rest-1.0&tabs=csharp

我也使用图形 SDK 来执行相同的操作,但还没有找到任何有用的线程来删除/忽略现有的文件锁。 然后我在Microsoft.SharePoint.Client.File类下找到了一个名为DeleteWithParameters()方法,该方法接受一个FileDeleteParameters类型的参数,我们可以通过该参数将BypassSharedLock参数设置为 true 以绕过现有锁。 代码如下所示:

 Microsoft.SharePoint.Client.FileDeleteParameters fileParams = new Microsoft.SharePoint.Client.FileDeleteParameters();
 fileParams.BypassSharedLock = true;
 var testDocument = clientContext.Web.GetFileByServerRelativeUrl(uri.LocalPath);
 testDocument.DeleteWithParameters(fileParams);
 clientContext.ExecuteQuery();

供你参考 :

在此处输入图片说明

请注意:我知道这并没有回答确切的问题,因为要求 OP 提供使用图形 SDK 删除/忽略锁定的选项。 但是,其他人仍然可以使用这种方法,因为它是Microsoft.SharePoint.Client的一部分,而不是任何外部 sdk。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM