首先,一个简单的问题 - 有没有人有任何编程方式在SharePoint目录结构中重命名/移动文件夹的经验?
背景:
我继承了一些工作,并且正在修复其中的一些缺陷。在大多数情况下情况进展顺利,但有一个问题是我正撞在墙上。
该应用程序是一个带有SharePoint 3文档存储的ASP.NET Web应用程序(C#)。应用程序在服务器上维护文件夹结构,文件夹的名称取决于应用程序中的数据,并且可以(实时)更改。
当前的方法是使用FrontPage扩展来处理对SharePoint的一些请求,如下所述:http://msdn.microsoft.com/en-us/library/ms443099.aspx
目前,如果文件夹不存在,将正确重命名文件夹,但如果文件夹确实存在,则会抛出错误(逻辑上也是如此)。在这种情况下,我们希望将文件夹的内容移动到现有文件夹中。从文档中我相信我们的方法应该有效......但事实并非如此,所以我希望有一些东西可以很容易地修改。
代码:
const string renameOption = "findbacklinks";
const string putOption = "overwrite,createdir,migrationsemantics";
string method = "method=move+document%3a12.0.4518.1016&service_name=%2f&oldUrl={0}&newUrl={1}&url_list=[]&rename_option={2}&put_option={3}&docopy={4}";
method = String.Format(method, oldUrl, newUrl, renameOption, putOption, bool.FalseString.ToLower());
// then submit and handle the request
我已经尝试修改上面的put选项,并且会认为上面的“覆盖”选项会阻止我们收到的错误消息,其中的内容是:
method=move document:12.0.0.6219
status=131097
osstatus=0
msg=Cannot rename value to value: destination already exists.
我首选的方法是让上面的实现工作,而不是使用其他技术完成重写(当然,如果上面有一个根本的缺陷,我知道可能需要重写)。
从我做过的研究看来,这是一项有点困难的任务,任何方法都有复杂性吗?
由于 克里斯
答案 0 :(得分:1)
我认为move document
方法仅适用于同一列表,不适用于在不同位置之间移动。它应该被称为rename document
。这可以解释为什么您收到“目的地已存在”错误。
如果你read the comments to this post,公司HubKey似乎开发了一个免费的测试版库。
就个人而言,我会开发一个自定义Web服务来实现这一点(实际上我根本不认为我会使用RPC的东西)。这是你的选择吗?