我正在寻找一种将文本文件添加到不列举整个文件集的SharePoint列表的方法。根据this SharePoint最佳实践文章,您不应该访问SPList.Files属性,因为它枚举了整个集合。除非你真的需要每件物品,否则它效率很低。我想要做的就是将一个文本文件添加到SharePoint列表的根文件夹中。到目前为止,我使用了以下内容:枚举SPList.Files不好
using (MemoryStream stream = new MemoryStream())
{
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
// write some stuff to the stream ...
// create a file-name-safe URL ...
// create a SPFileCollectionAddParameters object ...
// add the file
SPFile newFile = loggingList.RootFolder.Files.Add(fileURL, stream, addProperties);
}
那么,是枚举SPList.RootFolder.Files一样SPList.Files,在这种情况下(因为只有用文字根文件夹文件),如果是这样,是否有一种方法可以添加一个文件而不用枚举文件集合?
在此先感谢。 :D
干杯队友,但MSDN文章另有说明。我还读过一篇文章,这篇文章是由曾使用dll反射器查看另一个类似的SharePoint对象属性背后的代码的人所使用的......它使用无限制的CAML查询来查询并返回每个项目,每次访问该属性时都会返回。 :\。可能是错误的。 – user246091 2010-01-26 22:27:20
我刚刚检查了反射器。实际上,每次访问属性时都会创建一个新的SPFileCollection,但不会开始枚举它。 SPList.Items也是如此。 – Josh 2010-01-26 22:38:50
甜。 :D。那么新的收藏品是空的?我想它不会开始枚举,直到您实际尝试访问列表中的元素。即集合的迭代器实际上执行数据库访问的东西,集合有方法将新项目推回到内容数据库,添加到集合和调用更新....谢谢。我瘦了,回答它。 :D – user246091 2010-01-26 23:42:46