更改文件扩展名SPListItem SharePoint 2007

时间:2012-06-12 07:14:54

标签: 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();

2 个答案:

答案 0 :(得分:0)

您可以设置SPListItem FileLeafRef 字段,以便重命名SPFile

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

file.SaveBinary(pdfDoc);

答案 1 :(得分:0)

通过为PDF文件创建新的SPListItem来修复它。然后,我将每个字段的内容复制到新的SPListItem。之后,您可以删除旧文件或将其存档以供日后使用。