まず、簡単な質問です。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.
私の好ましいアプローチは、他の手法を使用して完全に書き直すのではなく、上記の実装を機能させることです(もちろん、上記に根本的な欠陥がある場合は、書き直しが必要になる可能性があることを理解しています)。
私が行った調査から、これはやや難しい作業であるように思われ、どのアプローチにも複雑さがありますか?
ありがとうクリス