Je suis à la recherche d'un moyen d'ajouter un fichier texte à une liste SharePoint qui n'énumère pas l'ensemble du fichier. Selon this article de meilleures pratiques SharePoint, vous ne devez pas accéder à la propriété SPList.Files car il énumère la collection entière. Sauf si vous voulez vraiment tous les articles, alors c'est très inefficace. Tout ce que je veux faire est d'ajouter un seul fichier texte dans le dossier racine d'une liste SharePoint. Jusqu'à présent, je me sers de ce qui suit:Énumérer SPList.Files est mauvais
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);
}
Alors, est-SPList.RootFolder.Files même énumération que SPList.Files, dans ce cas (car il n'y a qu'un dossier racine avec le texte fichiers) et si oui, existe-t-il un moyen d'ajouter un seul fichier sans énumérer la collection de fichiers?
Merci d'avance. : D
Acclamations mais l'article MSDN dit le contraire. J'ai également lu un article par quelqu'un qui avait utilisé un réflecteur dll pour regarder le code derrière une autre propriété d'objet SharePoint similaire ... il utilisait une requête CAML illimitée qui interrogeait et retournait chaque élément, CHAQUE fois que vous accédiez à la propriété. : \. Peut-être tort cependant. – user246091
Je viens de vérifier Reflector. En effet, il crée un nouveau SPFileCollection chaque fois que l'on accède à la propriété mais il ne commence pas à l'énumérer. La même chose est vraie pour SPList.Items. – Josh
Sweet. : D. Alors la nouvelle collection est vide? Je suppose que cela ne commence pas à énumérer jusqu'à ce que vous essayez d'accéder aux éléments de la liste. C'est à dire. l'itérateur de la collection exécute des tâches d'accès à la base de données et la collection a des méthodes pour repasser de nouveaux éléments dans la base de données de contenu après l'ajout à la collection et la mise à jour de l'appel .... Merci. Je mince k qui répond. : D – user246091