title: What is the difference between FileMode.Create and FileMode.Truncate?
body: <p>I don't really understand it:</p>
  <p><code>FileMode.Create</code> creates a new file if it doesn't exists, or overwrites one if it does.</p>
  <p><code>FileMode.Truncate</code> doesn't create a new file, but deletes the entire content of an existing one, so basically it also overwrites the file.</p>
  <p>So why is there even the possibility to do:</p>
  <pre><code>public void DoStuff()
  {
      using (FileStream fs = File.Open(path, FileMode.Truncate, FileAccess.Write, FileShare.None))
      {
          //Do something
      }
  }
  </code></pre>
  <p>When it's enough to do:</p>
  <pre><code>public void DoStuff()
  {
      using (FileStream fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None))
      {
          //Do something
      }
  }
  </code></pre>
  <p>Because both are basically using an empty file to write stuff into it</p>