C#SharePoint获取我的项目所在的整个文件夹路径

本文关键字:文件夹 路径 获取 我的 项目 C#SharePoint | 更新日期: 2023-09-27 18:22:01

我知道我可以获取文档所在的当前文件夹,但我需要将所有文件夹都获取到库级别。

文档库
**文件夹1
****文件夹2
******文件夹3
*******文档

当我使用属性时。ListItem.File.ParentFolder.Name;在"文档"上,它只给了我"文件夹3",我想最终得到的是"文档库''文件夹1''文件夹2''文件夹3"

谢谢Cory,
我用了你的方法,我就是这样做的。我会投赞成票,但我没有足够的分数
string currentItemName = properties.ListItem.Name; string currentItemPath = properties.ListItem.Url; currentItemPath= currentItemPath.Replace(currentItemName, "");

C#SharePoint获取我的项目所在的整个文件夹路径

我通过捕获文件的相对URL来实现这一点,在您的情况下,它只是properties.ListItem.Url。这可能会给你一些类似的东西:

/文件包/文件夹ABC/文件XYZ.doc

然后,您可以修剪最后一个/之后的所有内容。

我们可以从创建一个通用函数开始,当给定树中的一个节点时,返回该节点及其所有祖先的序列:

public static IEnumerable<T> GetAncestors<T>(
    this T node,
    Func<T, T> parentSelector)
{
    while (node != null)
    {
        yield return node;
        node = parentSelector(node);
    }
}

然后,只需将项目的文件夹和一个简单的lambda一起传递到该方法中,就可以获得该文件夹的父级:

var folder = item.Folder;
var allFolders = GetAncestors(folder, f => f.ParentFolder);