私はSharePointにドキュメントライブラリを持っています。新しいファイルがそのライブラリにアップロードされると、自動的に別のドキュメントライブラリにもコピーされます。これどうやってするの?SharePointのドキュメントライブラリにファイルをコピー
10
A
答えて
14
アイテムイベント受信者を使用し、ItemAddedイベントを上書きします。 SPItemEventPropertiesは、ListItemプロパティを使用してリストアイテムへの参照を提供します。
これを行うには2つの方法があります(CopyToを検出したため)。
方法1:(同様おそらく他のWebアプリケーションが、私はテストしていない)同じサイトコレクション内の任意の場所にそれに関連するファイルおよびプロパティを持つCopyTo
この方法でコピーする任意のリスト項目を使用します。 SharePointは、アイテムのプロパティを表示するかドロップダウンメニューを使用すると、ソースアイテムへのリンクも自動的に維持します。このリンクはUnlinkFromCopySourceで削除できます。
CopyToの唯一のトリックは、宛先の場所に完全なURLが必要であることです。
public class EventReceiverTest : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
properties.ListItem.CopyTo(
properties.WebUrl + "/Destination/" + properties.ListItem.File.Name);
}
}
方法2:ストリームのコピー、手動で設定されたプロパティ
アイテムのプロパティがコピーされたり、ファイルの内容を変更する必要がある場合は、その上より詳細に制御する必要がある場合は、この方法が唯一必要となります。
public class EventReceiverTest : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPFile sourceFile = properties.ListItem.File;
SPFile destFile;
// Copy file from source library to destination
using (Stream stream = sourceFile.OpenBinaryStream())
{
SPDocumentLibrary destLib =
(SPDocumentLibrary) properties.ListItem.Web.Lists["Destination"];
destFile = destLib.RootFolder.Files.Add(sourceFile.Name, stream);
stream.Close();
}
// Update item properties
SPListItem destItem = destFile.Item;
SPListItem sourceItem = sourceFile.Item;
destItem["Title"] = sourceItem["Title"];
//...
//... destItem["FieldX"] = sourceItem["FieldX"];
//...
destItem.UpdateOverwriteVersion();
}
}
展開
あなたにも展開するためのさまざまなオプションがあります。コンテンツタイプまたはリストに接続されているフィーチャにイベントレシーバを関連付け、プログラムで追加することができます。詳細はthis article at SharePointDevWikiを参照してください。
関連する問題
- 1. SharePointドキュメントライブラリ
- 2. Sharepoint内のファイルを更新するドキュメントライブラリ
- 3. Sharepointのドキュメントライブラリのフォルダ
- 4. Sharepoint 2010のドキュメントライブラリのブレッドクラム
- 5. sharepoint 2007ドキュメントライブラリの制限
- 6. HTTP PUTを使用してSharepoint(WSS 3.0)ドキュメントライブラリにファイルをアップロード
- 7. Sharepointドキュメントライブラリ - ファイル名をタイトルにjavascriptを使用して
- 8. SharePoint OnlineドキュメントライブラリからAccessデータベースにCSVファイルをインポート
- 9. プログラムによってSharepointドキュメントライブラリからファイルをダウンロードする方法
- 10. Sharepoint:ドキュメントライブラリのAccess DB(.accdb)に接続
- 11. Sharepointドキュメントライブラリ内のInfoPath XMLファイルからデータを抽出する
- 12. Sharepoint 2010ドキュメントライブラリのドキュメントのPDFを作成
- 13. ドキュメントライブラリの外でSharePoint Webページを作成
- 14. Sharepoint 2010添付ファイルとしてのドキュメントライブラリ内の電子メールドキュメント
- 15. Sharepointドキュメントライブラリ内の別のアイテムへのリンク
- 16. 文書ビューのSharePointドキュメントライブラリのカスタマイズ
- 17. SSISの宛先としてのSharepointドキュメントライブラリ
- 18. ドキュメントライブラリSharepoint 2007を移動する方法
- 19. htmlファイルを生成してsharepoint 2007のドキュメントライブラリにアップロードする方法
- 20. ユーザーログインなしでSharePointドキュメントライブラリからダウンロード
- 21. SharePoint 2010では、1つのドキュメントライブラリから別のファームの別のドキュメントにドキュメントをコピーします。
- 22. SharePointドキュメントライブラリのデータベースではなくファイルシステムにドキュメントを格納する
- 23. Infopathドキュメント情報パネルを別のSharePointドキュメントライブラリに移動
- 24. SharePoint 2007:プログラムでバイナリファイルをドキュメントライブラリにアップロードする方法
- 25. は、SharePointドキュメントライブラリにコメントや評価を追加またはピクチャー
- 26. SharePoint 2010サイトのコピー
- 27. Sharepoint 2007のドキュメントライブラリのドキュメントのKBを知る方法?
- 28. ファイルをドキュメントライブラリにアップロード/同期する
- 29. Webパーツページ用のSharePointドキュメントライブラリを作成する方法
- 30. SharePoint:ドキュメントライブラリ内のドキュメントをフィルタする方法
C#タグとSharePointタグのコンテキスト内では、この質問は理にかなっています。投票を再開することです。 –