1

首先,一个简单的问题 - 有没有人有任何以编程方式重命名/移动 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

我曾尝试修改上述看跌期权,并认为上述“覆盖”选项会阻止我们收到的错误消息,其内容是:

method=move document:12.0.0.6219
status=131097
osstatus=0
msg=Cannot rename value to value: destination already exists.

我的首选方法是让上述实现工作,而不是使用其他技术完全重写(当然,如果上述内容存在根本缺陷,我理解可能需要重写)。

从我所做的研究来看,这似乎是一项艰巨的任务,并且任何方法都存在复杂性?

谢谢克里斯

4

1 回答 1

1

我相信move document方法仅适用于同一个列表,不适用于在不同位置之间移动。真的应该叫它rename document。这可以解释为什么您会收到“目标已存在”错误。

HubKey 公司似乎已经开发了一个免费的 beta 库,如果你这样做的话阅读了这篇文章的评论,它就可以做到这一点。

就个人而言,我会开发一个自定义的 Web 服务来执行此操作(事实上,我认为我根本不会使用 RPC 的东西)。这是您的选择吗?

于 2009-07-29T11:35:37.193 回答