PowerShell - Delete all files and folders from a SharePoint library
A PowerShell script that empties a SharePoint 2010 document library by deleting its files and then its folders.
PowerShell needs no compiling. Write the script and run it. This one clears a SharePoint document library: first the files (root and subfolders), then the folders.
Replace siteurl with your web URL and docurl with the library URL.
powershell
Add-PSSnapin Microsoft.SharePoint.PowerShell
# Replace siteurl with actual web url
$web = Get-SPWeb -Identity "siteurl"
# Replace docurl with document library url
$list = $web.GetList("docurl")
function DeleteFiles {
param($folderUrl)
$folder = $web.GetFolder($folderUrl)
foreach ($file in $folder.Files) {
# Delete file by deleting parent SPListItem
Write-Host("DELETED FILE: " + $file.name)
$list.Items.DeleteItemById($file.Item.Id)
}
}
# Delete root files
DeleteFiles($list.RootFolder.Url)
# Delete files in folders
foreach ($folder in $list.Folders) {
DeleteFiles($folder.Url)
}
# Delete folders
foreach ($folder in $list.Folders) {
try {
Write-Host("DELETED FOLDER: " + $folder.name)
$list.Folders.DeleteItemById($folder.ID)
}
catch {
# Deletion of parent folder already deleted this folder
}
}
Run it from the SharePoint 2010 Management Shell. Test on a copy of the library first, because the deletes are immediate.