3

あるドキュメントライブラリから別のドキュメントライブラリにファイルをコピーする際に多くのスレッドが表示されますが、完全なドキュメントライブラリをあるサイトから別のサイトに(同じサイトコレクション内で)移動またはコピーしたいと思います。

これは.NETC#コードで可能ですか?

4

6 に答える 6

2

いいえ、これは不可能です。これは、サードパーティベンダーの専用バックアップソリューションが登場する場所です。

単純なドキュメントライブラリについて話している場合、もちろんそれほど難しくはありません。

  • まず、宛先に新しいドキュメントライブラリを作成し、現在のライブラリにあるすべての設定を適用します
  • SPFolder.Add次に、ライブラリ内のすべてのドキュメントを繰り返し処理し、次のコマンドを使用する必要があります。

    SPFileCollection collFile = collFolder.Files; foreach(SPFile file in collFile) destFolder.Files.Add(file.Name, file.OpenBinary());

この場合のcollFolderは、元のドキュメントライブラリです。destFolderは新しいドキュメントライブラリです。を使用して、ドキュメントライブラリをフォルダとして取得できますSPWeb.GetFolder(string doclibname)

于 2012-07-19T20:40:32.827 に答える
2

弊社ではControlPointを使用して、この種のアイテムとリスト/doclibのコピーを作成しています。PowershellやSTSADMで手を汚す必要はもうありません(手を汚したいものは別として)。素晴らしいツールと素晴らしいテクニカルサポートチームもあります。

于 2012-10-18T11:26:57.037 に答える
1

これを行うには、「コンテンツを含める」フラグを選択してリストをテンプレートとして保存し、宛先サイトのテンプレートから新しいリストを再作成します。

  1. リスト設定に移動し、[リストをテンプレートとして保存]を選択します
  2. フィールドに入力し、[コンテンツを含める]チェックボックスをオンにします。
  3. 目的のサイトに移動します。
  4. [サイトの操作]->[その他のオプション]に移動します。以前に保存したテンプレートを選択します。
  5. これで完了です。

ソースサイトのみに関連するリストをカスタマイズした場合(たとえば、アイテムのワークフローを開始した場合)、この方法でリストをコピーすることはできないことに注意してください。

これをプログラムで行うには、SPListist.SaveAsTemplate()メソッドを使用するだけです。

于 2012-07-20T08:12:20.443 に答える
0

エクスプローラービューで両方のライブラリを開き、アイテムをコピーします。ただし、これはコードソリューションではなく、メタデータをコピーしません。

于 2013-02-04T20:15:58.417 に答える
0

ソースオブジェクトとターゲットオブジェクトを開いてSPWeb、それらの間でアイテムを1つずつコピーしてみてください。この記事を読むことをお勧めします:http: //blog.mediawhole.com/2007/12/copying-sharepoint-document-library.html

著者は、同じWebアプリケーションに存在するあるサイトから別のサイトにドキュメントライブラリをコピーする方法を示しています。

于 2012-07-19T20:39:22.033 に答える
0

サーバーの全体管理にアクセスできる場合は、特定のドキュメントライブラリの詳細なバックアップを実行できます。あなたが望むどんなウェブサイトの下でもそれを復元することができるより。このソリューションは、アイテムを1つずつコピー(および削除)するよりも高速である必要があります。バックアップと復元については、http://blogs.msdn.com/b/russmax/archive/2009/10/21/sharepoint-2010-granular-backup-restore-part-1.aspxを参照してください。

于 2012-07-20T16:55:47.857 に答える