¿Cómo abrir un archivo html local en un navegador web cuando la ruta contiene un fragmento de URL?

Estoy tratando de abrir un navegador web a través de los siguientes métodos. Sin embargo, cuando el navegador abre la ruta url / file, la pieza del fragmento queda mutilada (de “#anchorName” a “% 23anchorName”) que no parece procesarse. Básicamente, el archivo se abre pero no salta a la ubicación apropiada en el documento. ¿Alguien sabe cómo abrir el archivo y tener el fragmento procesado? Cualquier ayuda en esto sería apreciada grandemente

una ruta de ejemplo para abrir sería “c: \ MyFile.Html # middle”

// calls out to the registry to get the default browser private static string GetDefaultBrowserPath() { string key = @"HTTP\shell\open\command"; using(RegistryKey registrykey = Registry.ClassesRoot.OpenSubKey(key, false)) { return ((string)registrykey.GetValue(null, null)).Split('"')[1]; } } // creates a process and passes the url as an argument to the process private static void Navigate(string url) { Process p = new Process(); p.StartInfo.FileName = GetDefaultBrowserPath(); p.StartInfo.Arguments = url; p.Start(); } 

Gracias a todos los que intentaron ayudarme con este problema. Desde entonces he encontrado una solución que funciona. Lo he publicado a continuación. Todo lo que necesita hacer es llamar a navegar con una ruta de archivo local que contenga un fragmento. ¡Aclamaciones!

  private static string GetDefaultBrowserPath() { string key = @"HTTP\shell\open\command"; using(RegistryKey registrykey = Registry.ClassesRoot.OpenSubKey(key, false)) { return ((string)registrykey.GetValue(null, null)).Split('"')[1]; } } private static void Navigate(string url) { Process.Start(GetDefaultBrowserPath(), "file:///{0}".FormatWith(url)); } 

Todo lo que necesitas es:

 System.Diagnostics.Process.Start(url); 

No soy un progtwigdor de C #, pero en PHP haría un urlencode. Cuando hice una búsqueda en Google en C # y urlencode, le di esta página aquí en StackOverflow … encoding url usando C #

Trate de confiar en el sistema para resolver las cosas correctamente:

  static void Main(string[] args) { Process p = new Process(); p.StartInfo.UseShellExecute = true; p.StartInfo.FileName = "http://stackoverflow.com/questions/tagged/c%23?sort=newest&pagesize=50"; p.StartInfo.Verb = "Open"; p.Start(); }