Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除Sharepoint中的特定文件版本_C#_Sharepoint_Sharepoint 2013 - Fatal编程技术网

C# 删除Sharepoint中的特定文件版本

C# 删除Sharepoint中的特定文件版本,c#,sharepoint,sharepoint-2013,C#,Sharepoint,Sharepoint 2013,我正试图用SP客户端方法解决这个问题。现在我正在使用Delete方法,它获取文件Id和版本,并删除文件的特定版本。问题是,当该版本是最后一个实际版本时,SharePoint将实际删除该文件及其所有版本。我做错了什么 using (var ctx = CreateClientContext()) { var fileItem = ctx.Web.Lists.GetByTitle(DocumentsFolder).GetItemById(fileId); ctx.Load(fileI

我正试图用SP客户端方法解决这个问题。现在我正在使用Delete方法,它获取文件Id和版本,并删除文件的特定版本。问题是,当该版本是最后一个实际版本时,SharePoint将实际删除该文件及其所有版本。我做错了什么

using (var ctx = CreateClientContext())
{
    var fileItem = ctx.Web.Lists.GetByTitle(DocumentsFolder).GetItemById(fileId);
    ctx.Load(fileItem, item => item.File.Versions, item => item.File, item => item.File.UIVersionLabel);
    ctx.ExecuteQuery();

    if (string.Equals(fileItem.File.UIVersionLabel, fileVersion, StringComparison.InvariantCulture))
    {
        fileItem.DeleteObject();
    }
    else
    {
        fileItem.File.Versions.First(fi => string.Equals(fi.VersionLabel,fileVersion,StringComparison.InvariantCulture)).DeleteObject();
    }
    ctx.ExecuteQuery();
}

我没有检查你的密码。但是,最后的版本和文件,它们只是一个文件,它们是相同的。在历史记录列表中,最新版本只是对该文件的引用。因此,如果删除最新版本,则也会删除该文件及其所有版本