4 Stimmen

Fügen Sie ein Dokument und Metadaten zu einer Dokumentenbibliothek hinzu, ohne 2 Versionen zu erstellen.

Ich habe eine Anforderung, programmgesteuert eine Datei zusammen mit Metadaten zu einer Dokumentbibliothek hinzuzufügen und in einem Ereignishandler. Ich benutze den folgenden Code in den asynchronen "ItemAdded" und "ItemUpdated" Ereignissen:

SPFile destFile = web.Files.Add(newUrl, newFile, true);

SPListItem destItem;
if (destFile.Item != null)
{
    destItem = destFile.Item;
}
else
{
    destItem = list.Items.Add(folderUrl, SPFileSystemObjectType.File);
}

foreach (DictionaryEntry property in properties)
{
    destItem.Properties[property.Key.ToString()] = property.Value;
}

destItem.Update();

Jedoch werden jedes Mal, wenn eine Datei hinzugefügt wird, zwei Versionen erstellt, eine wenn die Files.Add Methode aufgerufen wird und eine wenn die SPListItem.Update Methode aufgerufen wird. Gibt es einen anderen Weg, dies zu tun, bei dem nur eine Version erstellt wird?

Vielen Dank im Voraus!

8voto

Paul-Jan Punkte 16398

Verwenden Sie

destItem.SystemUpdate( false );

anstelle von .Update(), um das Erstellen einer neuen Version zu vermeiden.

2voto

Leonidius Punkte 548

Die Add() Methode hat eine Überschreibung, die eine Hashtable akzeptiert, um Metadaten zusammen mit der Datei zu übergeben. Auf diese Weise ist kein Aufruf der Update() oder SystemUpdate() Methoden erforderlich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X