This is a small program that will download the contents of a Sharepoint documnt library.
This will download all the files in the subfolders as well
class Program
{
static void Main(string[] args)
{
Console.WriteLine("This Application will download the documents in a library");
Console.Write("Enter Site URL : ");
string SiteURL = Console.ReadLine();
Console.Write("Library Name : ");
string LibraryName = Console.ReadLine();
//Open the site using the given url
using (SPSite site = new SPSite(SiteURL))
{
//Open the web application
using (SPWeb web = site.OpenWeb())
{
try
{
//Get the library folder
SPFolder folder = web.GetFolder(LibraryName);
//Download files
downloadFilesrecursively(folder);
}
catch (Exception ex)
{
//Print the details of the exception
Console.WriteLine("An Error Occured while processing " + ex.Message);
}
}
}
Console.ReadLine();
}
//The method that downloads the files from a given SPFolder
public static void downloadFiles(SPFolder folder)
{
foreach (SPFile item in folder.Files)
{
//Download the file
byte[] fileData = item.OpenBinary();
System.IO.FileStream fstream = System.IO.File.Create(item.Name);
fstream.Write(fileData, 0, fileData.Length);
Console.WriteLine(item.Name + " " + fileData.Length);
}
}
//Method that is used to call the download method recursively
public static void downloadFilesrecursively(SPFolder folder)
{
//If the folder have subfolders call the download
//Methods for the subfolders
if (folder.SubFolders.Count != 0)
{
//Download the files in the current folder
downloadFiles(folder);
foreach (SPFolder item in folder.SubFolders)
{
downloadFilesrecursively(item);
}
}
else
{
//If the folder has no subfolders
//then download the file in the folder
downloadFiles(folder);
}
}
}
No comments:
Post a Comment