通过WebDAV重定向器保存到SharePoint。获取新对象ID并丢失版本历史记录

时间:2009-03-02 22:31:20

标签: sharepoint webdav

我正在使用WebDAV重定向器编辑SharePoint存储库上的文件。看起来每次我以这种方式保存文件时,我都会得到一个替换前一个对象的新对象。这导致所有版本历史记录丢失。

打开文件正在通过CreateFile完成:

filename - 与用于CreateFile(可以工作)的只读调用相同

DesiredAccess:GENERIC_READ | GENERIC_WRITE

dwShareMode:FILE_SHARE_READ SecurityHandle:设置了长度,但其他2个字段为0

dwCreationDisposition:OPEN_EXISTING dwFlagsAndAttributes:FILE_ATTRIBUTE_NORMAL

hTemplateFile:NULL

将文件写入此调用返回的句柄后,如果获取此文件的列表项,则对象编号(ID =)已递增。此外,此ID号似乎预先添加到列表项中的每个字段(通过序列“#;”与实际数据分开)

如果我签出,编辑,然后使用Web界面签入,则不会发生ID号的增加(以及版本历史记录的丢失);它保留了相同的ID,版本历史保持不变。

我该如何避免这种情况?我必须保留版本历史记录。

2 个答案:

答案 0 :(得分:1)

我建议获取HTTP跟踪。

可能会显示重定向器使用临时文件,然后将其移动到原始文件上。

修复:使用更智能的WebDAV客户端(Xythos驱动器可能更好)。

答案 1 :(得分:0)

通过使用WebDav,您绕过了SharePoint运行时,这就是您的原因。为了确保您获得版本历史记录,您应该使用SharePoint apis(Web服务或OM)