Würde man hier nicht besser
System.Diagnostics.Process.Start("explorer", tmpFile);
aufrufen?

Oder anders gefragt: was passiert, wenn eine Datei "cmd" heisst? Oder "format d:"? ;-)