我正面临一个问题,在SPFile.Delete()删除我的所有版本的文件,甚至从回收站。我不希望在回收站中存在的文件版本被删除。
例如:我为同一个文件xyz.xls创建了4个版本。现在我从UI中删除文件的第二个版本。这将我的第二个版本发送到回收站。现在我需要的是,当我调用SPFile.Delete()时,它应该删除文件的4个其他版本,而不是回收站中的那个。当前也正在删除回收站中的版本。
我要实现的是,在回收站中存在的文件的版本不应该被删除。当我调用SPFile.Delete()时,只有库中存在的版本应该被删除。
在某些地方提到的使用. recycle()的解决方案只会将所有版本移动到回收站。但是我需要的是,存在于库中的文件的版本应该被永久删除,而存在于回收站中的文件的版本根本不应该被删除。
您可以遍历文件的版本并逐个删除它们。它可能会慢一些,但我认为它会达到你想要的效果
foreach(SPFileVersion version in file.Versions)
{
version.Delete()
}
这样您将只删除当前在文件中而不在回收站中的版本。