remove extraneous document versions(Keep all Major versions and keep last 2 recent minor versions)  in sharepoint 2007

Dear All ,

Can you please advise on this ? It's sharepoint 2007


I need to remove extraneous document versions(Keep all Major versions and keep last 2 recent minor versions) .

I have written a utility it's always deleting old version .

For examble

2.3,2.2,2.1,2.0,1.3,1.2,1.1,1.0,0.6,0.5,0.4,0.3,0.2,0.1 - If is this original case then I need a result as all major (1.0,2.0)versions and last two minor (2.3,2.2)versions.

but my utility returning last 2 results only
======================================================
private static void DeletePHFVersionHistory(string siteURL, string listname,int versionToKeep)
{
string surl = "siteurl";
using (SPSite spPIRSite = new SPSite(surl))
{
using (SPWeb spPIRWeb = spPIRSite.OpenWeb())
{

SPList list = spPIRWeb.Lists[listname];

#region DocumentLibrary
if (list.BaseTemplate == SPListTemplateType.DocumentLibrary)
{
SPDocumentLibrary library = (SPDocumentLibrary)list;
foreach (SPListItem item in list.Items)
{
SPFile file = item.File;
Deleteversions(file, item, versionToKeep);

}
}
#endregion DocumentLibrary

}
}
//#endregion SPSite
Console.WriteLine("Exiting the code to delete the versions.. ");
}
============================================
private static void Deleteversions(SPFile file, SPListItem item, int versionToKeep)
{
Console.WriteLine("Deleting versions for Item with ID: {0} Name {1}", item.ID, item.Name);
int verCount = item.Versions.Count;
if (verCount - versionToKeep <= 0)
{
Console.WriteLine("Versions Count is Less than the specified versions to keep ");
}
else
{
do
{
try
{
// if (!file.Versions[0].IsCurrentVersion)
if (file.Versions.Count > versionToKeep)
{
Console.WriteLine("File version {0}, Item Version {1} ", file.Versions[0].VersionLabel, item.Versions[item.Versions.Count - 1].VersionLabel);
//item.Versions[item.Versions.Count - versionToKeep].Delete();
file.Versions[0].Delete();

}
}
catch (Exception ex)
{
Console.WriteLine("Exception occured deleting.......");
Console.WriteLine(ex.Message + System.Environment.NewLine + ex.StackTrace);
}
} while (file.Versions.Count > versionToKeep || item.Versions.Count > versionToKeep + 1);
}
}

}

March 17th, 2015 12:35am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics