varios una todos suprimir que poder para los habilitar explorador esta eliminarla eliminar elementos deja debe con como carpeta cargar bibliotecas archivos archivo adjuntar abrir sharepoint document-library

sharepoint - suprimir - ¿Cómo eliminar eficientemente todos los archivos en una biblioteca de documentos?



eliminar bibliotecas windows 10 (4)

Estoy buscando un ejemplo claro y completo de eliminar mediante programación todos los documentos de una biblioteca de documentos específica, a través del modelo de objetos Sharepoint. El doclib no contiene carpetas. Estoy buscando eliminar los documentos por completo (es decir, no los quiero en la Papelera de reciclaje).

Sé de SPWeb.ProcessBatchData, pero de alguna manera nunca parece funcionar para mí.

¡Gracias!


Solo tiene que revisar todos los archivos de su Biblioteca de documentos.

foreach(SPListItem item in SPContext.Current.Web.Lists["YourDocLibName"].Items) { //TODO: Verify that the file is not checked-out before deleting item.File.Delete(); }

Llamar al método de eliminación en un archivo de la API no utiliza la papelera de reciclaje. Es una eliminación directa. Aún necesita verificar que el archivo no esté desprotegido.

Aquí hay alguna referencia:


Perseveraría con el enfoque ProcessBatchData, quizás esto ayude:

Vincent Rothwell ha cubierto esto mejor: http://blog.thekid.me.uk/archive/2007/02/24/deleting-a-considerable-number-of-items-from-a-list-in-sharepoint.aspx

De lo contrario, no estoy seguro de que la otra recomendación funcionará, ya que a un bucle Foreach no le gustará que la cantidad de elementos en la colección cambie con cada eliminación.

Probablemente estés mejor ubicado haciendo un ciclo inverso (no probé este código, solo un ejemplo):

for (int i = SPItems.Length - 1; i >= 0; i--) { SPListItem item = SPItems[i]; item.File.Delete(); }



Forma Powershell:

function ProcessFolder { param($folderUrl) $folder = $web.GetFolder($folderUrl) foreach ($file in $folder.Files) { #Ensure destination directory $destinationfolder = $destination + "/" + $folder.Url if (!(Test-Path -path $destinationfolder)) { $dest = New-Item $destinationfolder -type directory } #Delete file by deleting parent SPListItem $list.Items.DeleteItemById($file.Item.Id) } } #Delete root Files ProcessFolder($list.RootFolder.Url) #Delete files from Folders or Document Sets foreach ($folder in $list.Folders) { ProcessFolder($folder.Url) }