2008-08-28 9 views
1

Als vorübergehende Notlösung, bis alle Designer vorhanden sind, führen wir gerade eine ganze Reihe von XML-Konfigurationsdateien bei der Arbeit durch. Eines der Probleme dabei ist die Datei-Versionierung, weil die Leute vergessen, die Versionsnummern zu aktualisieren, wenn sie die Dateien aktualisieren (was zu erwarten ist, da Menschen im Allgemeinen an Perfektion leiden).Abrufen von Dateien und deren Versionsnummern vom Sharepoint

Daher denke ich, dass, wenn wir die Dateien in Sharepoint speichern, ich in der Lage sein sollte, ein Skript zu schreiben, um die Dateien von Sharepoint herunterzuziehen, erhalten Sie die Versionsnummer und automatisch die Versionsnummer von SharePoint in die Datei eingeben/aktualisieren. Das heißt, wenn jemand die "neuesten" Dateien haben möchte, können sie das Skript ausführen und die neuesten Dateien mit den Versionsnummern korrekt erhalten (es gibt etwas mehr als das, so dass der Grund für die Verwendung des Skripts nicht nur der Vorteil der automatischen Versionierung).

Kann jemand die Dateien + Versionsnummern von Sharepoint bekommen?

Antwort

1

Es gibt einen Weg, es durch Web-Services zu tun, aber ich habe mehr mit der Implementierung von benutzerdefinierten Event-Handler getan. Hier ist ein bisschen Code, der tun wird, was Sie wollen. Beachten Sie, dass Sie dies nur vom Server aus ausführen können. Sie können dies also in einem Webdienst einbinden, um den Zugriff von Ihren eingebetteten Geräten zu ermöglichen. Außerdem müssen Sie in diesem Code auf die Microsoft.SharePoint.dll verweisen.

using (SPSite site = new SPSite("http://yoursitename/subsite")) 
{ 
    using (SPWeb web = site.OpenWeb()) 
    { 
     SPListItemCollection list = web.Lists["MyDocumentLibrary"].GetItems(new SPQuery()); 
     foreach(SPListItem itm in list) { 
      Stream inStream = itm.File.OpenBinaryStream(); 
      XmlTextReader reader = new XmlTextReader(inStream); 
      XmlDocument xd = new XmlDocument(); 
      xd.Load(reader); 
      //from here you can read whatever XML node that contains your version info 
      reader.Close(); 
      inStream.Close(); 
     } 
    } 
} 

Die mit() Aussagen sind, um sicherzustellen, dass Sie nicht über einen Speicherverlust erstellen, wie die SPSite und SPWeb nicht verwalteten Objekte sind.

Edit: Wenn die Versionsnummer auf eine Bibliothek Feld gefördert wurde, können Sie es durch die in der folgenden Zugang zur Schleife oben:

itm["FieldName"] 
1

Ich nehme an, Sie sprechen über Dokumente in einer Liste oder einer Bibliothek, nicht Quelldateien in der 12-Stock. Wenn dies der Fall ist, verfügt jede Bibliothek über eine integrierte Versionierung. Sie können darauf zugreifen, indem Sie auf die Formularbibliothekseinstellungen klicken, die in jeder Bibliothek verfügbar sind (natürlich mit den entsprechenden admin privs). Wählen Sie dort Versionierungseinstellungen aus und wählen Sie ein Setup aus, das für Ihren Prozess geeignet ist.

Wie für die Versionsnummer im Code bekommen, wenn Sie ein SPListItem aus der Sammlung ziehen, gibt es eine SPListItemVersionCollection namens Versionen jedes Element befestigt ist.

Verwandte Themen