Save files from SharePoint document library via PowerShell
I was asked to download a lot of files from document library. Of course, I could open document library in Explore mode, but there was a lot of files and it could take a long time. So I’ve found a good PowerShell script to save files from document library.
It's not my code, it's just good 🙂 Here it is:
######################## Start Variables ########################
$destination = "C:\\Data\\DCData"
$webUrl = "<Url of the specific site>"
$listUrl = "<Url of the specific list. This url is complete Url and NOT relative"
##############################################################
$web = Get-SPWeb -Identity $webUrl
$list = $web.GetList($listUrl)
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
}
#Download file
$binary = $file.OpenBinary()
$stream = New-Object System.IO.FileStream($destinationfolder + "/" + $file.Name), Create
$writer = New-Object System.IO.BinaryWriter($stream)
$writer.write($binary)
$writer.Close()
}
}
#Download root files
ProcessFolder($list.RootFolder.Url)
#Download files in folders
foreach ($folder in $list.Folders) {
ProcessFolder($folder.Url)
}
This code reads binary from each element of document library and writes binary file on disc.
Changing the Runtime Environment for an Azure App Service
How to Write Formatted Code in Teams Chat
A Hidden Visual Studio Trick: Execute Selected Code with double Ctrl+E