0

ドキュメントとフォルダー (新しいコンテンツ タイプとして導入) を含む sharepoint ドキュメント ライブラリがあり、フォルダーにのみ追加されたドキュメントにイベント レシーバーがあるため、新しく追加されたドキュメントの親フォルダーを取得するために、この方法で記述しようとしましたしかし、うまくいかないようです:

public override void ItemAdded(SPItemEventProperties properties)
{
    base.ItemAdded(properties);

    //getting the item (document) newly added to my content type folder
    SPListItem myItem = properties.ListItem;
    //getting the folder containing my doc
    SPFolder myFolder = myItem.File.ParentFolder;
    //other code on my SPFolder
}
4

2 に答える 2

0

sharepoint.stackexchange からのこのスニペットは私を助けました:

SPFile file = properties.ListItem.Web.GetFile(properties.ListItem.Url);
SPFolder fileFolder = file.ParentFolder;

https://sharepoint.stackexchange.com/questions/7090/get-containing-folder-list-for-spfile-item

于 2014-02-11T09:39:47.417 に答える
0

カスタム拡張メソッドを使用します:

SPFolder myFolder = myItem.GetParentFolder();
// TODO Test myFolder for null, because it could happen in edge cases

実装は次のようになります。

public static SPFolder GetParentFolder(this SPListItem spListItem) 
{
    SPFolder parentFolder = null;
    // Try to get it from folder
    if (spListItem.Folder != null)
    {
        parentFolder = spListItem.Folder.ParentFolder;
    }
    // Try to get it from file
    else if (spListItem.File != null)
    {
        parentFolder = spListItem.File.ParentFolder;
    }
    // At last get file - it is more time/resource consuming
    else
    {
        SPFile spFile = spListItem.Web.GetFile(spListItem.Url);
        if (spFile != null)
            parentFolder = spFile.ParentFolder;
    }
    // Can be null
    return parentFolder;
}
于 2013-02-08T07:48:21.480 に答える