我正在尋找一種將文本文件添加到不列舉整個文件集的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