Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add a document and metadata to a document library without creating 2 versions

I have a requirement to programmatically add a file along with metadata to a document library and in an event handler. I am using the following code in the asynchronous “ItemAdded” and “ItemUpdated” events:

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();

However, each time a file is added, two versions are created, one when the Files.Add method is called and one when the SPListItem.Update method is called. Is there another way to do this where only one version will be created?

Thanks in advance!

like image 977
Dylan Berry Avatar asked Dec 30 '22 09:12

Dylan Berry


1 Answers

Use

destItem.SystemUpdate( false );

in stead of .Update() to avoid creating a new version.

like image 60
Paul-Jan Avatar answered Feb 05 '23 18:02

Paul-Jan