2012-02-12 7 views
0

状況:
1つのWebApplication、2つのサイトコレクション。どちらのサイトコレクションも同じ "タイプ"とデータ構造を持っています。どちらのコレクションも同じ構造のドキュメントライブラリを使用します。Sharepoint2010:異なるサイトコレクションの2つのドキュメントライブラリ間でアイテムをコピー

問題/質問:私は、次のしようとすると、コレクションBに収集Aから一つの文書をコピーする機能を実装する必要が
...

SPFile destfile = destPageList.RootFolder.Files.Add(sourcePage.File.ServerRelativeUrl, sourcePage.File.OpenBinary()); 

...私が取得しますこのWebには、指定されたURLを持つファイルが存在しないことがcxceptionに示されています。 URLは正しいので、なぜこれが起こっているのだろうか?この問題を解決するためのヒントや方法がありますか?

その他に関する情報:
私はVisualStudioを2010、.NET 3.5、Sharepoint2010サーバーを使用しています。

編集:
これをプログラムで実行する必要があります。コンテンツの展開は、何らかの理由で利用可能な解決策ではありません。

答えて

2

ファイルコレクションを1つのWebで使用して別のWebアプリケーションにファイルを追加することはできません。 代わりに、ソースファイルを開き、宛先サイトとWebを開き、Filesコレクションを使用して、宛先Webに新しいファイルを作成する必要があります。何かのように:

バイト[] sourceFileContent = sourcePage.File.OpenBinary();使用
(のSPSiteサイト=新しいSPSiteオブジェクトを( "のhttp:// mysite2"))
{
       使用(SPWebウェブ= site.OpenWeb( "/"))
        {
                SPList list = web.List ["My List"];
                list.RootFolder.Files.Add(destFileUrl、 sourceFileContent)。サイト間でファイルをコピーする
       }}

ところで

、ここで説明したように、エクスポート/インポートを使用した方がよい: http://www.spsamples.com/2011/07/moving-sharepoint-list-items-to-archive.html

関連する問題