我正在构建一个Sharepoint 2010导出工具,用于备份原因(有点像Metavis的文件管理器)。
将文件下载到本地磁盘时,我需要备份与文档关联的元数据。我将存储在csv文件中。我的第一种方法是迭代所有listItem.fieldvalues,但这并不真正起作用,因为一些fieldvalues是复杂类型,这会不必要地使备份文件复杂化。有些值甚至有行结尾,例如“MetaInfo”。此外,在可能需要时还不需要所有值来恢复内容。
所以我的想法是只从Fieldvalues集合中获取进行功能恢复所需的值,并补充所有用户添加的元数据。
为此,我想针对排除列表检查所有字段值,以查看它是否存在。如果它存在则不备份。如果它是用户生成的元数据或我需要的值,例如“author”,“created”。
所以我的问题是,有没有人知道所有fieldvalues键的列表? 或者有更好的解决方法吗?
由于
更新:好吧,因为我正在以任何方式迭代FieldValues集合。将所有值转储到CSV很容易。运行一次足以获得所有值。现在我需要编写的是一个用于配置的xml文件。这就留下了一个问题:有没有更好的方法呢?
答案 0 :(得分:1)
通过编写以下代码来过滤列表字段 使用系统; 使用Microsoft.SharePoint.Client;
clientContext.Load(
listItems,
items => items
.Include(
item => item["Title"],
item => item["Category"],
item => item["Estimate"]));
您可以创建包含所有字段的视图,使用sharepoint对象模型获取视图,并从集合中获取其列名,并根据您的要求对其进行过滤。
答案 1 :(得分:0)
我已完成申请。正如我在更新中所写的那样,我通过将它们导出到CSV文件来制作所有fieldValues的列表。之后,我使用布尔“备份”创建了一个配置文件。这使得可以控制在进行备份时使用哪些值。
我回想起来,我认为不需要配置文件。备份时使用的值是程序整个工作过程的一部分,配置文件为管理员或临时未来开发人员提供了简单的重新配置将满足需求的印象。
我现在可以看到,如果程序需要根据新要求进行更改,则无论如何都必须更改代码。因此,即使将值设置为“True”也会改变输出。还必须编写其他一些代码。如果我再次写它,我可能会使用常量。这使得它不那么动态,但仍然满足程序的需要。
(顺便说一下,标准fieldValues之外的所有名字的列表一定很好。我会在这里发布它,但我不能再访问该文件,因为我最近切换了作业。)