Code snippet to download the files along with versions from SPS 2003 document library.


   1:          private void Download()
   2:          {
   3:              string  siteUrl     = txtSite.Text.ToString();
   4:              string  source      = txtDocLib.Text.ToString();
   5:              string  downloadPath= txtDownload.Text.ToString();
   6:              byte[]  vContent    = null;
   7:              int     count       = 1;    
   8:   
   9:              using (SPSite site = new SPSite(siteUrl))
  10:              {
  11:                  using (SPWeb web = site.OpenWeb())
  12:                  {
  13:                      SPFolder sourceFolder = web.GetFolder(source);
  14:                      
  15:                      //fetching data from doc lib
  16:                      foreach (SPFile file in sourceFolder.Files)
  17:                      {
  18:                          //saving the main file
  19:                          byte[] data= file.OpenBinary();
  20:                          SaveFile(downloadPath + "\\" + file.Name, data);
  21:                        
  22:                          //saving each file's versions now
  23:   
  24:                          //resetting the counter of file names
  25:                          count = 1;
  26:                          SPFileVersionCollection vCol = file.Versions;
  27:                          for (int i = vCol.Count - 1; i >= 0; i--)
  28:                          {
  29:                              vContent = vCol[i].OpenBinary();
  30:                              SaveFile(downloadPath + "\\" + file.Name.Substring(0,file.Name.IndexOf(".")) + "-version"
  31:                                        + count.ToString() + file.Name.Substring(file.Name.IndexOf(".")), vContent);
  32:                              count++;
  33:                          }
  34:                      }
  35:                  }
  36:              }
  37:   
  38:              MessageBox.Show("Done!");
  39:          }
  40:   
  41:          //to save file on the local file system
  42:          private void SaveFile(string fileName, byte[] data)
  43:          {
  44:              try
  45:              {
  46:                  System.IO.FileStream fileStream = new System.IO.FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
  47:                  fileStream.Write(data, 0, data.Length);
  48:                  fileStream.Close();
  49:              }
  50:              catch (Exception ex)
  51:              {
  52:                  MessageBox.Show("Exception : " + ex.ToString());
  53:              }
  54:          }

:: Please note that I would have just uploaded my initial code and you might want to consider proper optimization of the code and disposal of objects properly. I might not have updated the latest code here.

Comments (0)

Skip to main content