title: Creating Folders dynamically using CSOM in sharepoint causes ID issues for the document
body: <p>I am creating the nested folders dynamically  for a document library and uploading files. The below code is working fine. but the issues is whenever i uploading the file to the existence folder the ID of the document for the uploaded documents is  not in sequence. Suppose if  i am uploading a file to path projects\PRJ1\Assignment, fist time it was creating the folders and file with ID's(1\2\3\4) respectively . If i upload other document to the same folder the id of the folders is not changing but the id of the file is 8. i am not unable to find the id 5,6,7 in the document library.</p>
  
  <pre><code>    using (CSOM.ClientContext clientContext = new CSOM.ClientContext(SPserverUrl))
                  {
        clientContext.Credentials = new System.Net.NetworkCredential(Username, Password, Domain);
                      CSOM.Web _Site = clientContext.Web;
                     // string listrootfolder = "Testlist";
                      CSOM.List _List = _Site.Lists.GetByTitle("Testlist");
                      clientContext.Load(_List.RootFolder);
                      clientContext.ExecuteQuery();
                      string listrootfolder = _List.RootFolder.Name.ToString();
      var folder = CreateFolder(clientContext.Web, "Testlist", folderpath);
  
                          // uploading the document
                          CSOM.FileCreationInformation newFile = new CSOM.FileCreationInformation();
                          // newFile.Content = System.IO.File.ReadAllBytes(@"D:\Testupload.docx");  
                          byte[] bytes = Convert.FromBase64String(objReqDocumentDetials.FileData.ToString());
                          newFile.Content = bytes;
                          //   newFile.Url = objDocumentDetials.AttachmentName.ToString() + DateTime.Now.ToString("ddMMyyyyHHmmsss") + "." +          objDocumentDetials.FileType.ToString();
                          newFile.Url = objReqDocumentDetials.FileName.ToString() + "." + objReqDocumentDetials.FileType.ToString();
                          newFile.Overwrite = true;
                          Microsoft.SharePoint.Client.File _UploadingFile = folder.Files.Add(newFile);
  
                          var item = _UploadingFile.ListItemAllFields;
                          // var folder = item.GetFolder("account/" + folderName);
                        //  item["Year"] = DateTime.Now.Year.ToString();
                      //    item.Update();
  
                          clientContext.Load(_UploadingFile, f =&gt; f.ListItemAllFields);
                          clientContext.ExecuteQuery();
      }
  
      public CSOM.Folder CreateFolder(CSOM.Web web, string listTitle, string fullFolderPath)
      {
          if (string.IsNullOrEmpty(fullFolderPath))
              throw new ArgumentNullException("fullFolderPath");
          CSOM.List list = web.Lists.GetByTitle(listTitle);
          return CreateFolderInternal(web, list.RootFolder, fullFolderPath);
      }
  
      public CSOM.Folder CreateFolderInternal(CSOM.Web web, CSOM.Folder parentFolder, string fullFolderPath)
      {
          var folderUrls = fullFolderPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
          string folderUrl = folderUrls[0];
          var curFolder = parentFolder.Folders.Add(folderUrl);
          web.Context.Load(curFolder);
          web.Context.ExecuteQuery();
  
          if (folderUrls.Length &gt; 1)
          {
              var folderPath = string.Join("/", folderUrls, 1, folderUrls.Length - 1);
              return CreateFolderInternal(web, curFolder, folderPath);
          }
          return curFolder;
      }
  </code></pre>