Question

J'ai une très grande liste (~ 5000 documents) qui a été cahin-caha pendant environ un an. Il a eu versioning activé, avec des versions majeures, en gardant 2 anciennes versions. Nous sommes tout à fait la restructuration de la bibliothèque de documents (plus que dans une autre question) et je voudrais tout simplement se débarrasser des anciennes versions à travers le conseil d'administration pour nettoyer la bibliothèque et récupérer de l'espace.

Je suis devenu versioning off, mais les versions ne disparaissent pas, quand je pense qu'ils devraient. Des pensées? Une chose, il est important de noter est que je hérité la bibliothèque de documents. Il est un peu étrange de plusieurs façons et je ne sais pas exactement comment il a été créé.

Était-ce utile?

La solution 4

Maintenant que je suis plus vieux et plus sage de peu Teeny, je l'aurais résolu ce problème en écrivant un script côté client. En utilisant SPServices , je aurais pu en boucle à travers tous les éléments de la bibliothèque de documents et appelé DeleteAllVersions pour chacun. C'est ainsi au code d'écriture « pas de code » pour le faire.

Autres conseils

Malheureusement, je ne peux pas penser à une façon non programmatique de le faire, j'ai eu un coup d'œil à ce et ont créé un code échantillon à boucle à travers et supprimer les versions, sauf pour le dernier (ce qui repose sur la dernière étant la version publié bien):

 using (SPSite site = new SPSite("http://yourserver/sites/site"))
        {
            using (SPWeb web = site.OpenWeb())
            {
                SPList list = web.Lists["Test Doc Library"];
                foreach (SPListItem item in list.Items)
                {
                    SPListItemVersionCollection versionCol = item.Versions;
                    int count = versionCol.Count;
                    int j = 0;
                    for (int i = 1; i < count; i++)
                    {
                        if (versionCol[i].VersionId != versionCol[j].VersionId)
                        {
                            SPListItemVersion version = versionCol[i];
                            version.Delete();
                            count = item.Versions.Count;
                        }
                    }
                }



            }
        }

Cependant, les pistes de code par l'amende, mais la version ne disparaît pas vraiment bien, je pense que vous devez faire quelque chose avec la collection SPFileVersion aussi est une bibliothèque de documents. Cela devrait vous aider à démarrer de toute façon, laissez-moi savoir comment vous allez.

Vive

Je ne sais pas s'il y a un moyen d'écrire sur les champs créés / CreatedBy en utilisant les services Web, mais vous pouvez écrire une application d'exportation (pour les données binaires + métadonnées) qui utilise les services Web et enregistre tout sur votre machine locale . écrire également une application d'importation qui télécharge les fichiers dans un nouveau doclib (pourrait télécharger dans des dossiers séparés, la résolution de la question soulevée dans votre autre question) et re-applique les métadonnées.

Si par exemple vous avez 100 versions d'un document, puis restreignez 2 dernières versioning versions, le 98 précédente ne vais pas aller Sauf lorsque vous insérez une nouvelle version.

Une façon simple de nettoyer ces anciennes versions de chaque document dans la bibliothèque est d'exporter le contenu du sous-site (œuvres d'exportation STSADM au niveau du site de niveau non bibliothèque) avec les versions paramètre = 1 à exporter uniquement la dernière version . Vous pouvez supprimer ce site et réimporter et donc se débarrasser de toutes les versions antérieures. les documents d'exportation Stsadm se trouve ici ( http://technet.microsoft.com/en -nous / bibliothèque / cc262759.aspx )

Une autre option (simplement une variante de ce qui précède) est d'utiliser l'assistant de déploiement de contenu ( http: //spdeploymentwizard.codeplex .com / ), vous devez exporter la bibliothèque doc sans versions, puis supprimez existantes et l'importer avant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top