sharepoint-2010 - 现有项目的 SharePoint SPFile 更改扩展可能吗?

标签 sharepoint-2010 file-extension sharepointdocumentlibrary

我在这个问题上不知所措。我有一个用户界面,用于创建和编辑存储在 SharePoint 文档库中的文档。技巧部分是我需要允许用户更新文档没问题,只需使用 SPFile.SaveBinary()对?

这肯定会更新文件的内容,但不知何故旧文件名和旧扩展名仍然存在,这是一个问题。删除并重新添加列表项也不是解决方案,因为 url 中引用了该项的 id。

我的问题是如何更新 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();

[编辑] - 这是我的工作解决方案。
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();

最佳答案

文件保存到库后,使用 MoveTo方法并在 newUrl 中传递修改后的文件名范围。

SPFile.MoveTo Method (String)
Quick & Easy: Rename Uploaded File Using SharePoint Object Model Via an Event Receiver

关于sharepoint-2010 - 现有项目的 SharePoint SPFile 更改扩展可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895695/

相关文章:

python - 文件更新时的 Office365-REST-Python-Client 401

sharepoint - 将同名文档上传到 SharePoint 2010

powershell - Activate-Feature:在siteURl>处激活功能<featurename>时出错,找到的程序集的 list 定义与程序集引用不匹配

javascript - 为什么这个 jQuery 不向下滑动/显示隐藏(向上滑动)的元素?

Python: AttributeError: 'NoneType' 对象没有属性 'rfind'

c++ - 尝试向文件添加扩展名时,Rename() 函数不起作用

Sharepoint 日历与 Google 日历同步

visual-studio-2010 - 在visual studio 2010中将带有资源文件的dll部署到sharepoint 2010

windows - Windows-未知文件类型和Windows Web“查找”

sharepoint - 以编程方式在 SharePoint 文档库中添加/创建新文档