Sharepoint: Как добавить файл без изменения версии? - PullRequest
1 голос
/ 24 октября 2011

Мне нужно добавить новую версию файла в SPFileCollection без изменения версии (это системное обновление содержимого файла PDF)

UpdateOverwriteVersion позволяет мне изменять метаданные, но есть ли способ изменить содержимое (байты) файла?

Временное решение: Хорошо, как выяснил Стефан , удовлетворительного решения этой проблемы не существует. Я нашел два обходных пути:

1. (Имейте в виду, что отключение контроля версий может привести к неправильному поведению, если в этом списке работают люди ... - Stefan )

oFile = oWeb.GetFile(url);
oFile.Item.ListItems.List.EnableVersioning = false;
oFile.Item.ListItems.List.Update();
oFolder.Files.Add(oFile.Name, aBytes, fileProperties, true);
oFile.Item.ListItems.List.EnableVersioning = true;
oFile.Item.ListItems.List.Update();

2

oFile = oWeb.GetFile(sAdres);
int iFileVersion = oFile.UIVersion;
oFolder.Files.Add(oFile.Name, aBytes, fileProperties, true);
oFileVersion = oFile.Versions.GetVersionFromID(iFileVersion);
if (null != oFileVersion && !oFileVersion.IsCurrentVersion)
{
    oFileVersion.Delete();
}

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Почему бы вам не использовать SystemUpdate(false)

http://msdn.microsoft.com/en-us/library/ms481195.aspx

0 голосов
/ 24 октября 2011

Вы можете загрузить объект SPFile, а затем вызвать метод SPFile.SaveBinary(Stream, SPFileSaveBinaryParameters) для обновления его содержимого.

С помощью свойства CreateVersion SFileSaveBinaryParameters вы можете указать, следует ли создавать новую версию.

[...] это умышленно. Насколько я знаю, других решений на этот счет нет.

Цитата модератора на форуме Microsoft TechNet .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...