title: after email deleting attachment file, error "The process cannot access the file because it is being used by another process."
body: <p>I am doing an email form. Email has attachments and after attaching files email is sent. Next there is requirement to delete file from server. When I tried to get the file it gave me the subject error. I am even calling GC.Collect() before deleting the file but error is still there. My code for deleting file is:</p>
  
  <pre><code> private void DeleteFiles(DataTable dt)
  {
      GC.Collect();
      String[] sAttachments = new String[dt.Rows.Count];
      try
      {
  
          sAttachments = new String[dt.Rows.Count];
          for (Int32 J = 0; J &lt; dt.Rows.Count; J++)
          {
              sAttachments[J] = dt.Rows[J]["AttachmentExt"].ToString().Trim();
              string workDir = Server.MapPath(".") + @"\upload\";
              if (File.Exists(workDir + sAttachments[J]))
                  File.Delete(workDir + sAttachments[J]);                
          }
      }
      catch (Exception ex)
      {
  
      }
  </code></pre>
  
  <p>For attaching file to email my code is:</p>
  
  <pre><code> oMess.Subject = sSubject; 
          string workDir = System.Web.HttpContext.Current.Server.MapPath(".") + @"\upload\";
          if (Attachments != null)
          {
              for (Int32 I = 0; I &lt; Attachments.Length; I++)
              {
                  oatt = new Attachment(workDir+ sAttachments[I]);
                  oMess.Attachments.Add(oatt);
              }
          }
          oMess.IsBodyHtml = IsHtml;
          oMess.Body = sBody;
         SendMessageGmail(oMess);
  </code></pre>
  
  <p>Edit: My mail sending code is:</p>
  
  <pre><code> private void SendMessageGmail(MailMessage message)        
      {
          SmtpClient client = new SmtpClient("smtp.gmail.com");
          client.EnableSsl = true;
          client.UseDefaultCredentials = false;
          NetworkCredential loginInfo = new NetworkCredential("myid", "mypassword");
          client.Credentials = loginInfo;
          client.Port = 587;
          client.Send(message);
      }
  </code></pre>
  
  <p>Plz guide and help. thanks</p>