将文档和元数据添加到文档库,无需创建 2 个版本
我需要以编程方式将文件和元数据添加到文档库和事件处理程序中。我在异步“ItemAdded”和“ItemUpdated”事件中使用以下代码:
SPFile destFile = web.Files.Add(newUrl, newFile, true);
SPListItem destItem;
if (destFile.Item != null)
{
destItem = destFile.Item;
}
else
{
destItem = list.Items.Add(folderUrl, SPFileSystemObjectType.File);
}
foreach (DictionaryEntry property in properties)
{
destItem.Properties[property.Key.ToString()] = property.Value;
}
destItem.Update();
但是,每次添加文件时,都会创建两个版本,一个在调用 Files.Add 方法时创建,一个在调用 SPListItem.Update 方法时创建叫。是否有另一种方法可以只创建一个版本?
提前致谢!
I have a requirement to programmatically add a file along with metadata to a document library and in an event handler. I am using the following code in the asynchronous “ItemAdded” and “ItemUpdated” events:
SPFile destFile = web.Files.Add(newUrl, newFile, true);
SPListItem destItem;
if (destFile.Item != null)
{
destItem = destFile.Item;
}
else
{
destItem = list.Items.Add(folderUrl, SPFileSystemObjectType.File);
}
foreach (DictionaryEntry property in properties)
{
destItem.Properties[property.Key.ToString()] = property.Value;
}
destItem.Update();
However, each time a file is added, two versions are created, one when the Files.Add method is called and one when the SPListItem.Update method is called. Is there another way to do this where only one version will be created?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
代替 .Update() 以避免创建新版本。
Use
in stead of .Update() to avoid creating a new version.
Add() 方法有一个重写,它接受哈希表以将元数据与文件一起传递。这样就不需要调用 Update() 或 SystemUpdate() 方法。
The Add() method has an override which accepts a hashtable to pass metadata along with the file. This way there is no need to call Update() or SystemUpdate() methods.