SPC050227: Do not call SPFileVersion.Delete to delete multiple versions

When you delete multiple versions of a file, use the DeleteByID() method; do not use the Delete() method. You will experience performance problems if you delete each SPFileVersion object from an SPFileVersionVersionCollection object.

TypeName: DoNotUseSPFileVersionDelete
CheckId: SPC050227
Severity: CriticalWarning
Type: AssemblyFileReference

The recommended practice is to create an array that contains the ID properties of each version and then delete each version by using the SPFileVersionCollection.DeleteByID method.

SPSite site = new SPSite("site url");
SPWeb web = site.OpenWeb();
SPList list = web.Lists["custom list name"];
SPFile file = list.RootFolder.Files[0];
SPFileVersionCollection collection = file.Versions;
ArrayList idList = new ArrayList();
foreach (SPFileVersion ver in collection)
foreach (int verID in idList)
   catch (Exception ex)


comments powered by Disqus