title: how to get file properties?
body: <p>I want an application which displays the some file properties of a mediafile if available, like (don't know the exact english words used in windows for it) FileName, Length/Duration, FileType(.avi .mp3 etc.) 
  I tried taglib and windowsapishell but I dont get a working result (references are good)</p>
  
  <pre><code>ShellFile so = ShellFile.FromFilePath(file);
  so.Properties.System.(everythingIwant)
  </code></pre>
  
  <p>shows me a lot of file properties which I want to have displayed, but I cant get it working
  An example of an error:</p>
  
  <p>'WindowsFormsApplication2.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
  The program '[6300] WindowsFormsApplication2.vshost.exe: Program Trace' has exited with code 0 (0x0).
  The program '[6300] WindowsFormsApplication2.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).</p>
  
  <p>something easy like</p>
  
  <pre><code>var thing = so.Properties.System.FileName.Description;
  Console.WriteLine(thing);
  </code></pre>
  
  <p>wont work</p>
  
  <p>I do know some Java and PHP programming, but I'm totally new to C#</p>
  
  <hr>
  
  <p>Special thanks to @marr75 and @errorstacks !</p>
  
  <p>one follow up question:
  I made this, and it works</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {   
          string file = "E:/Dump/Shutter Island.avi";
  
          FileInfo oFileInfo = new FileInfo(file);
          Console.WriteLine("My File's Name: \"" + oFileInfo.Name + "\"");
          DateTime dtCreationTime = oFileInfo.CreationTime;
          Console.WriteLine("Date and Time File Created: " + dtCreationTime.ToString());
          Console.WriteLine("myFile Extension: " + oFileInfo.Extension);
          Console.WriteLine("myFile total Size: " + oFileInfo.Length.ToString());
          Console.WriteLine("myFile filepath: " + oFileInfo.DirectoryName);
          Console.WriteLine("My File's Full Name: \"" + oFileInfo.FullName + "\"");
  
      }               
  }
  </code></pre>
  
  <p>but I want it to only provide me with the info if the info exists.
  I saw the </p>
  
  <pre><code>   **Exists**   Gets a value indicating whether a file exists. (Overrides FileSystemInfo.Exists.)
  </code></pre>
  
  <p>But how do I use this function, I guess not like if(io.ofileinfo.FullName.exist) {Console.Write(io.ofileinfo.fullname);} ?</p>