0

出于备份原因,我正在构建一个 Sharepoint 2010 导出工具(有点像 Metavis 的文件管理器)。

将文件下载到本地磁盘时,我需要备份与文档关联的元数据。我将存储在一个 csv 文件中。我的第一种方法是迭代所有 listItem.fieldvalues,但这并没有真正起作用,因为某些字段值是复杂类型,这会使备份文件不必要地复杂化。有些值甚至有行尾,例如“MetaInfo”。此外,当可能需要时,并非所有值都需要恢复内容。

所以我的想法是只从 Fieldvalues 集合中获取执行功能恢复所需的值,并辅以所有用户添加的元数据。

为此,我想根据排除列表检查所有字段值以查看它是否存在。如果存在,请不要备份。如果是用户生成的元数据或我需要的值,例如“作者”、“创建”。

所以我的问题是,有人知道所有字段值键的列表吗?还是有更好的方法来解决我的问题?

谢谢

更新:好吧,因为我以任何方式遍历 FieldValues 集合。将所有值转储到 CSV 很容易。运行一次就足以获得所有值。现在我只需要编写一个用于配置的 xml 文件。这就留下了一个问题:有没有更好的方法来做到这一点?

4

2 回答 2

1

通过使用 System 编写以下代码来过滤列表字段;使用 Microsoft.SharePoint.Client;

    clientContext.Load(
         listItems,
         items => items
             .Include(
                 item => item["Title"],
                 item => item["Category"],
                 item => item["Estimate"]));

来源:http: //msdn.microsoft.com/en-us/library/ee857094.aspx#SP2010ClientOM_Creating_Windows_Console_Application

您可以创建包含所有字段的视图,使用 sharepoint 对象模型获取视图,并从集合中获取其列名并根据您的要求对其进行过滤。

于 2011-11-17T12:27:02.217 回答
0

我已经完成了申请。正如我在更新中所写,我通过将所有 fieldValues 导出到 CSV 文件来列出它们。之后,我制作了一个带有布尔“备份”的配置文件。这使得可以控制在进行备份时要使用哪些值。

我回想起来我认为不需要配置文件。备份时使用的值是程序整个工作的重要组成部分,以至于配置文件给管理员或未来的临时开发人员一种简单的重新配置就可以满足需求的印象。

我现在可以看到,如果程序由于新要求而需要更改,则无论如何都必须更改代码。因此,即使将值设置为 'True' 也会改变输出。还必须编写一些其他代码。如果我要再写一次,我可能会使用常量。这使它变得不那么动态,但仍然满足程序的需求。

(顺便说一句,标准 fieldValues 之外的所有名称的列表本来是不错的开始。我会在这里发布它,但我无法再访问该文件,因为我最近换了工作。)

于 2011-12-14T09:42:35.393 回答