Загрузка версии файла - модель объекта клиента
-
16-10-2019 - |
Вопрос
У меня есть библиотека с версионными файлами. У меня есть версионные файлы, подготовленные для загрузки (1 версия = 1 файл). Как создать новую версию? Я только что установил свойство контента файла и обновите его? Пожалуйста, поделитесь своими экспериментами, спасибо
РЕДАКТИРОВАТЬ: У меня есть что -то вроде этого:
File1|v1
File1|v2
File1|v4
File2|v2
File2|v5
Так что у меня отсутствуют версии. Можно ли установить версию файла при загрузке (поле элемента?)? Если нет, я заполню отсутствующую версию предыдущими/следующими версиями, например, File2 | V1 будет заполнен File2 | V2.
Решение
Я не знаю, как программно назначить номер версии, но если можно позволить SharePoint назначить номер версии ...
С версией сервера метода:
SPFileCollection.Add(urlOfFile, fileContent, overwrite);
Если вы пройдете в переверте = true, и библиотека документов включена в версии, я думаю, что это создаст новую версию документа. (Это поведение через браузер.) Я предполагаю, что версия модели объекта клиента будет вести себя так же.
FileCreationInformation fci = new FileCreationInformation();
fci.Url = urlOfFile;
fci.Content = fileContent;
fci.Overwrite = true;
folder.files.Add(fci);
Таким образом, до тех пор, пока вы загружаете файлы в правильном порядке их версий, SharePoint должен создавать каждую версию для вас.
Другие советы
Вот небольшой образец кода, который будет моделировать управление версией файла
public File changeDocumentVersion(string version,File file){
string [] versions = version.Split(new char[]{'.'});
int minor = Int32.Parse(versions[1]);
int major = Int32.Parse(versions[0]);
for (int i = 1; i < major; i++)
{
file.CheckOut();
file.CheckIn("versioning", CheckinType.MajorCheckIn);
}
for (int i = 0; i < minor; i++)
{
file.CheckOut();
file.CheckIn("versioning", CheckinType.MinorCheckIn);
file.Context.Load(file);
file.Context.ExecuteQuery();
}
return file;
}
Пока вы включили введение версий (найдено в настройках списка/библиотеки, то включение версии) SP позаботится о вас.