Download all files from SharePoint Document library

Using Power shell command use below code
  1. $destination = "C:\\tools\\Folder"  
  2. $webUrl = "<Url of the specific site>"  
  3. $listUrl = "<Url of the specific list. This url is complete Url and NOT relative url>"  
  4. $web = Get - SPWeb - Identity $webUrl  
  5. $list = $web.GetList($listUrl)  
  6.   
  7. function ProcessFolder {  
  8.     param($folderUrl)  
  9.     $folder = $web.GetFolder($folderUrl)  
  10.     foreach($file in $folder.Files) {#Ensure destination directory  
  11.         $destinationfolder = $destination + "/" + $folder.Url  
  12.         if (!(Test - Path - path $destinationfolder)) {  
  13.             $dest = New - Item $destinationfolder - type directory  
  14.         }#Download file  
  15.         $binary = $file.OpenBinary()  
  16.         $stream = New - Object System.IO.FileStream($destinationfolder + "/" + $file.Name), Create  
  17.         $writer = New - Object System.IO.BinaryWriter($stream)  
  18.         $writer.write($binary)  
  19.         $writer.Close()  
  20.     }  
  21. }#Download root files  
  22. ProcessFolder($list.RootFolder.Url)#Download files in folders  
  23. foreach($folder in $list.Folders) {  
  24.     ProcessFolder($folder.Url)  
  25. }  
using Server object model use below code
  1. static void Main(string[] args) {  
  2.     using(SPSite site = new SPSite("http://site name")) {  
  3.         using(SPWeb web = site.OpenWeb()) {  
  4.             // Library name - Shared Documents  
  5.             SPList list = web.Lists["Shared Documents"];  
  6.             processFolder(list.RootFolder.Url);  
  7.             foreach(SPFolder folder in list.RootFolder.SubFolders) {  
  8.                 processFolder(folder.Url);  
  9.             }  
  10.         }  
  11.     }  
  12. }  
  13. public static void processFolder(string folderURL) {  
  14.     string Destination = @  
  15.     "c:\\temp";  
  16.     using(SPSite site = new SPSite("http://yoursite")) {  
  17.         using(SPWeb web = site.OpenWeb()) {  
  18.             SPFolder folder = web.GetFolder(folderURL);  
  19.             foreach(SPFile file in folder.Files) {  
  20.                 string destinationfolder = Destination + "/" + folder.Url;  
  21.                 byte[] binary = file.OpenBinary();  
  22.                 if (!Directory.Exists(destinationfolder)) {  
  23.                     Directory.CreateDirectory(destinationfolder);  
  24.                 }  
  25.                 FileStream stream = new FileStream(destinationfolder + "/" + file.Name, FileMode.Create);  
  26.                 BinaryWriter writer = new BinaryWriter(stream);  
  27.                 writer.Write(binary);  
  28.                 writer.Close();  
  29.             }  
  30.         }  
  31.     }  
  32. }  
using Client object model use below code
  1. static void Main(string[] args) {  
  2.     var site = new ClientContext("http://sitename/");  
  3.     var web = site.Web;  
  4.     site.Load(web);  
  5.     site.ExecuteQuery();  
  6.     // Library name - Shared Documents  
  7.     List list = web.Lists.GetByTitle("Shared Documents");  
  8.     site.Load(list);  
  9.     site.ExecuteQuery();  
  10.     site.Load(list.RootFolder);  
  11.     site.ExecuteQuery();  
  12.     site.Load(list.RootFolder.Folders);  
  13.     site.ExecuteQuery();  
  14.     processFolderClientobj(list.RootFolder.ServerRelativeUrl);  
  15.     foreach(Folder folder in list.RootFolder.Folders) {  
  16.         processFolderClientobj(folder.ServerRelativeUrl);  
  17.     }  
  18. }  
  19. public static void processFolderClientobj(string folderURL) {  
  20.     string Destination = @  
  21.     "c:\\temp";  
  22.     var site = new ClientContext("http://sitename/");  
  23.     var web = site.Web;  
  24.     site.Load(web);  
  25.     site.ExecuteQuery();  
  26.     Folder folder = web.GetFolderByServerRelativeUrl(folderURL);  
  27.     site.Load(folder);  
  28.     site.ExecuteQuery();  
  29.     site.Load(folder.Files);  
  30.     site.ExecuteQuery();  
  31.     foreach(Microsoft.SharePoint.Client.File file in folder.Files) {  
  32.         string destinationfolder = Destination + "/" + folder.ServerRelativeUrl;  
  33.         Stream fs = Microsoft.SharePoint.Client.File.OpenBinaryDirect(site, file.ServerRelativeUrl).Stream;  
  34.         byte[] binary = ReadFully(fs);  
  35.         if (!Directory.Exists(destinationfolder)) {  
  36.             Directory.CreateDirectory(destinationfolder);  
  37.         }  
  38.         FileStream stream = new FileStream(destinationfolder + "/" + file.Name, FileMode.Create);  
  39.         BinaryWriter writer = new BinaryWriter(stream);  
  40.         writer.Write(binary);  
  41.         writer.Close();  
  42.     }  
  43. }  
  44. public static byte[] ReadFully(Stream input) {  
  45.     byte[] buffer = new byte[16 * 1024];  
  46.     using(MemoryStream ms = new MemoryStream()) {  
  47.         int read;  
  48.         while ((read = input.Read(buffer, 0, buffer.Length)) > 0) {  
  49.             ms.Write(buffer, 0, read);  
  50.         }  
  51.         return ms.ToArray();  
  52.     }  
  53. }