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, "");
我通过捕获文件的相对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);