Переименовать файл в папке библиотеки документов
-
16-10-2019 - |
Вопрос
Это все хорошо, за исключением того, что мой файл находится в папке, называемой «Общей папкой» в разделе библиотеки общих документов.
SPSite oSite = new SPSite ("http://<sitename>/");
SPWeb oWeb = oSite.OpenWeb();
SPList oList = oWeb.Lists["Shared Documents"];
SPListItem oListItem = oList.Items[0]; //taking the first list item
oListItem.File.CheckOut();
oListItem["Name"] = "xyz";
oListItem.Update();
oListItem.File.CheckIn("file name has been changed");
=== Добавлено больше ===
SPFolder gFolder = currentWeb.Folders[doclibname].SubFolders["Shared Folder"];
SPFileCollection filesColl = gFolder.Files;
foreach (SPFile file in filesColl)
{
if (file.Title.Equals("abcdefg"))
{
//file.Title = newFileName;
file.Properties["Title"] = "xyz";
file.Update();
}
}
Spfile не позволяет мне сделать это так.
Решение 2
Наконец это работает. Некоторые из переменных объявлены в проекте, который здесь не показан. как библиотека документов.
if (properties.BeforeUrl != properties.AfterUrl)
{
string[] onp = properties.BeforeUrl.Split('/');
string ofn= onp[onp.Length - 1]; // get the old file name
string ofnwoext = Path.GetFileNameWithoutExtension(ofn);
string[] nnp = properties.AfterUrl.Split('/');
string nfn = nnp[nnp.Length - 1]; //get the new file name
string furl = doculibrUrl + "/Shared Folder/" + ofnwoext + ".tiff";
SPFile file = web.GetFile(fURL);
if (file.Exists)
{
file.Item["Name"] = nfn;
file.Properties["Title"] = nfn;
file.Item.Update();
}
return;
}
Другие советы
Попробуйте использовать item.Name
скорее, чем item["Name"]
.
Работает для меня в примере кода на этой странице.
Не связан с sharepoint.stackexchange