如何从库中删除文件而不删除MOSS2007中的循环版本



我正面临一个问题,在SPFile.Delete()删除我的所有版本的文件,甚至从回收站。我不希望在回收站中存在的文件版本被删除。

例如:我为同一个文件xyz.xls创建了4个版本。现在我从UI中删除文件的第二个版本。这将我的第二个版本发送到回收站。现在我需要的是,当我调用SPFile.Delete()时,它应该删除文件的4个其他版本,而不是回收站中的那个。当前也正在删除回收站中的版本。

我要实现的是,在回收站中存在的文件的版本不应该被删除。当我调用SPFile.Delete()时,只有库中存在的版本应该被删除。

在某些地方提到的使用. recycle()的解决方案只会将所有版本移动到回收站。但是我需要的是,存在于库中的文件的版本应该被永久删除,而存在于回收站中的文件的版本根本不应该被删除。

您可以遍历文件的版本并逐个删除它们。它可能会慢一些,但我认为它会达到你想要的效果

foreach(SPFileVersion version in file.Versions)
{
    version.Delete()
}

这样您将只删除当前在文件中而不在回收站中的版本。

最新更新