我正在构建一个Sharepoint 2010导出工具用于备份(有点像Metavis的filemanager)。
下载文件到本地磁盘时,我需要备份与该文档相关的元数据。我将把它存储在csv文件中。我的第一种方法是迭代所有listItem。字段值,但这实际上不起作用,因为一些字段值是复杂类型,这将不必要地使备份文件复杂化。有些值甚至有行结尾,例如"MetaInfo"。此外,在必要时,并非需要所有值来恢复内容。
所以我的想法是只从Fieldvalues集合中获取进行功能恢复所需的值,并补充所有用户添加的元数据。
要做到这一点,我想检查所有字段值对排除列表,看看它是否存在。如果它存在,不要备份。如果是,它要么是用户生成的元数据,要么是我需要的值,比如"author", "created"。
所以我的问题是,有人知道所有字段值键的列表吗?还是有更好的方法来解决我的问题?
感谢Update:当我以任何方式迭代FieldValues集合时。很容易将所有值转储到CSV中。运行一次就足以获得所有的值。现在我只需要编写一个用于配置的xml文件。这就留下了一个问题:是否有更好的方法来做到这一点?
通过编写以下代码筛选列表字段使用系统;使用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
我已经完成申请。正如我在更新中所写的,我通过将它们导出到CSV文件制作了所有字段值的列表。之后,我用布尔值"Backup"创建了一个配置文件。这样就可以控制在进行备份时要使用哪些值。
我回想起来,我认为配置文件是不需要的。备份时使用的值是整个程序工作的很大一部分,以至于配置文件会给管理员或未来的临时开发人员一种简单的重新配置将满足他们需求的印象。
我现在可以看到,如果程序需要更改,由于新的需求,代码无论如何必须更改。所以即使将值设置为True也会改变输出。还必须编写一些其他代码。如果我再写一遍,我可能会用常数。这使得它不那么动态,但仍然满足程序的需要。
(顺便说一句,从标准fieldValues之外的所有名称列表开始会很好。我本想把它发布在这里,但是我不能再访问这个文件了,因为我最近换了工作。