1

まず、簡単な質問です。SharePointのディレクトリ構造でフォルダの名前をプログラムで変更/移動した経験はありますか?

背景:

私はいくつかの作業を継承しており、その中のいくつかの欠陥を修正しようとしています。ほとんどの場合、状況は順調に進んでいますが、壁に頭をぶつけているという問題が1つあります。

このアプリケーションは、SharePoint3ドキュメントストアを備えたASP.NETWebアプリケーション(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社がこれを行う無料のベータライブラリを開発したようです。

個人的には、これを行うカスタムWebサービスを開発します(実際、RPCのものはまったく使用しないと思います)。これはあなたにとっての選択肢ですか?

于 2009-07-29T11:35:37.193 に答える