Я в этом сообразительность.У меня есть пользовательский интерфейс, который создает и редактирует документы, хранящиеся в библиотеке документов SharePoint.Прикол в том, что мне нужно, чтобы пользователь мог обновлять документ без проблем, просто используйте SPFile.SaveBinary()
верно?
Это определенно обновляет содержимое файла, но каким-то образом сохраняется старое имя файла и старое расширение, это проблема.Удаление и повторное добавление элемента списка также не является решением, потому что на идентификатор элемента ссылаются в URL.
Мой вопрос: как я могу обновить метаданные расширения и имени файла элемента SPFile?
Пока все мои попытки использования библиотеки объектов не увенчались успехом, я пытался обновить поля нижени один не был успешным.Похоже, должен быть более простой способ сделать это.
SPFile file = item.File;
file.Item[SPBuiltInFieldId.FileLeafRef] = resolvedFileName;
file.Item[SPBuiltInFieldId.FileRef] = "/File/" + resolvedFileName;
file.Item[SPBuiltInFieldId.BaseName] = System.IO.Path.GetFileNameWithoutExtension(resolvedFileName);
file.Item["Name"] = System.IO.Path.GetFileNameWithoutExtension(resolvedFileName);
file.SaveBinary(conduitFile);
file.Update();
[EDIT] - Вот мое рабочее решение.
SPFile file = item.File;
string resolvedFileName = item.ID.ToString() + "-" + conduitFileName;
item["Title"] = resolvedFileName;
file.SaveBinary(conduitFile);
file.MoveTo(item.ParentList.RootFolder.Url + "/" + resolvedFileName, true);
file.Item["Name"] = resolvedFileName;
file.Update();