5

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

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

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

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

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

我究竟做错了什么?

感谢您的帮助。

4

1 回答 1

7

SPFolder用于从 SharePoint 文档库/列表中获取对象。您无法通过尝试将文件SPFolder转换为. 您也不能使用SPWeb.GetFolder这些文件,因为这些文件离您的网络不远。它们在您的硬盘上。

您可以使用 获得 14 个蜂巢GetGenericSetupPath,因此可以使用以下方法:

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

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


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

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

于 2012-06-19T10:56:21.537 回答