0

状況:
1つのWebアプリケーション、2つのサイトコレクション。両方のサイトコレクションは、同じ「タイプ」とデータ構造を持っています。どちらのコレクションも、同じ構造のドキュメントライブラリを使用しています。

問題/質問:
コレクションAからコレクションBに1つのドキュメントをコピーする機能を実装する必要があります。次のことを試してみると...

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

...このWebには、指定されたURLのファイルが存在しないという認識があります。URLが正しいので、なぜこれが発生するのでしょうか。この問題を解決するためのヒントやその他の方法はありますか?

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

編集:
私はこれをプログラムで達成する必要があります!コンテンツの展開は(何らかの理由で)使用可能なソリューションではありません。

4

1 に答える 1

2

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

byte [] sourceFileContent = sourcePage.File.OpenBinary();
using(SPSite site = new SPSite( "http:// mysite2"))
{
    using(SPWeb web = site.OpenWeb( "/"))
    {
        SPList list = web.Lists ["My List"];
        list.RootFolder.Files.Add(destFileUrl、sourceFileContent);
    }
}

ところで、サイト間でファイルをコピーするには、ここで説明されているように、エクスポート/インポートを使用することをお勧めします: http ://www.spsamples.com/2011/07/moving-sharepoint-list-items-to-archive.html

于 2012-02-12T11:46:17.397 に答える