如何从库中删除文件而不在MOSS 2007中以编程方式删除回收版本

时间:2014-05-29 08:40:25

标签: sharepoint sharepoint-2010 sharepoint-2007 sharepoint-designer sharepoint-workflow

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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