2

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

它不能手动更改(这是自动的要求)。我现在唯一的问题是我需要将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(); 

回答

0

通过为PDF文件创建一个新的SPListItem固定它。之后,我将每个字段的内容复制到新的SPListItem中。之后,您可以删除旧文件或将其归档以备后用。

0

您可以设置SPListItemFileLeafRef场以重命名SPFile

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

file.SaveBinary(pdfDoc); 
+0

这是否也更新其他领域?像:EncodedAbsUrl(编码绝对url)等? – Stefan

+0

是的,_EncodedAbsUrl_字段,“SPFile.Name”等将被更新。 – Stefan

+0

当我尝试你的代码的字段FileLeafRef保持不变:Field:FileLeafRef value:25. Form.xml – Stefan