c# - 更改文件扩展名 SPListItem SharePoint 2007

标签 c# sharepoint sharepoint-2007 sharepoint-workflow workflow-activity

我在 SharePoint 2007 中有表单库。我创建了一个自定义工作流事件,可以将 InfoPath 文档转换为 PDF。但是,当我尝试将原始 InfoPath 文件替换为新的 PDF 文件时,它一直引用 InfoPath 文件。如何将 InfoPath 列表项重命名为 PDF?

不能手动更改(需要自动更改)。我现在唯一的问题是我需要将 PDF 文件存储在同一个 SPListItem 中。因为我想保留文件的元数据和历史信息(需求)。

我的代码:

//new url = file.pdf
//old url = file.xml
//pdf doc = byte[] of pdf file

file.MoveTo(newUrl);
file.ReplaceLink(oldUrl, newUrl);
file.SaveBinary(pdfdoc);

file.Update();
file.CheckIn("File Converted to PDF - V1.0");
file.Update();

最佳答案

您可以设置 SPListItemFileLeafRef 字段以重命名 SPFile:

file.Item[SPBuiltInFieldId.FileLeafRef] = newUrl;
// UpdateOverwriteVersion() in order to prevent duplicated version histroy entries...
file.Item.UpdateOverwriteVersion(); 

file.SaveBinary(pdfDoc);

关于c# - 更改文件扩展名 SPListItem SharePoint 2007,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992013/

相关文章:

javascript - 在 DIV 中显示来自 SharePoint 的 CAML 查询结果

sharepoint - 从 Sharepoint 日历中删除项目

sharepoint - 有人可以解释 MOSS 2007 中的备用访问映射吗?

asp.net - 从 SharePoint URL 中获取/页面?

c# - 使用 InternalsVisibleToAttribute 的单元测试需要使用/不使用 :filename. ext 进行编译?

c# - 需要更好的方法来根据另一个列表对一个列表进行排序

c# - 控制台托管的 WCF 服务不跟踪

c# - 将存档文件中的 Stream 转换为 Byte[]

javascript - 当在 Sharepoint 日历中单击更多项目旁边的三 Angular 形符号时,需要调用 javascript 中的方法

SharePoint - 跨网站集使用内容查询 Web 部件