gpt4 book ai didi

c# - 从 SharePoint 中的 _layouts 文件夹获取文件

转载 作者:太空狗 更新时间:2023-10-29 23:01:22 33 4
gpt4 key购买 nike

我目前正在开展一个项目,我正在将 docx 文件添加到 Visual Studio 中的 Layout 文件夹,然后使用这些文件创建内容类型。

问题是我无法以编程方式获取文档文件。使用网络浏览器我可以获取文件但不能使用 web.GetFolder();。当功能被激活时,代码在功能接收器中运行。

SPSite site = properties.Feature.Parent as SPSite;
SPWeb web = site.RootWeb;

SPFolder docTempFolder = web.GetFolder("_LAYOUTS/Projekt/DocumentTemplates");

这段代码给我一个包含零个文件的集合。

我做错了什么?

感谢您的帮助。

最佳答案

SPFolder 用于从 SharePoint 文档库/列表中获取对象。您无法通过尝试将文件转换为 SPFolder 来访问您的文件系统(第 14 个配置单元)中的文件。此外,您不能使用 SPWeb.GetFolder,因为这些文件离您的网站不远。它们在您的硬盘上。

您可以使用 GetGenericSetupPath 获取第 14 个配置单元,所以像这样的东西会起作用:

var path = SPUtility.GetGenericSetupPath(@"TEMPLATE\LAYOUTS\Projekt\DocumentTemplates");

您现在可以使用常规流阅读器、System.IO.File 等访问此路径


编辑:对于 SharePoint 2013 及更高版本,上述方法已过时,因为在较新的 SharePoint 版本中,对 _layouts 文件夹的引用始终在路径中包含 SharePoint 版本(例如 /_layouts/15 用于 SharePoint 2013 /_layouts/14 用于 SharePoint 2010。

新方法是SPUtility.GetVersionedGenericSetupPath . SharePoint 2010 中不存在该方法。

关于c# - 从 SharePoint 中的 _layouts 文件夹获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098333/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com