使用相对路径打开html文件

时间:2013-02-26 11:26:53

标签: c# .net file-io

我有一个需要打开的html文件。

我使用了这段代码

try 
{ 
    Process.Start("HelpPage.htm"); 
} catch (Exception ex) { 
    MessageBox.Show(ex.Message); 
}   

如您所见,我使用了文件的相对路径。 但它没有用。 它抛出一个错误:

  

系统无法找到指定的文件

1 个答案:

答案 0 :(得分:0)

根据你所写的内容,我认为问题在于你的道路是 - 如你所知 - 相对。

try{ 
   Process.Start("HelpPage.htm"); 
} catch (Exception ex) { 
   MessageBox.Show(ex.Message); 
} 

此代码想要在运行应用程序的同一文件夹中打开一个文件,即ExecuteablePath:

System.Reflection.Assembly.GetExecutingAssembly().Location //This is the application path

现在,如果该位置不存在该文件,则无法打开该文件。 因此,随之而来的是FileNotFoundException被抛出。

现在:

如果要在X上打开文件:\ myFolder \ myFolder2 \ myHTMLfile.html

您必须将绝对文件路径传递给您的应用程序:

您可以通过

执行此操作
Process.Start("X:\\myFolder\\myFolder2\\myHTMLfile.html"); 

这里用第二个反斜杠或

掩盖反斜杠
Process.Start(@"X:\myFolder\myFolder2\myHTMLfile.html"); 
  

@ -quoting的优点是不处理转义序列,这样便于编写[和读取]

有关详细信息,请查看here

编辑:

如果该文件存在于ApplicationDirectory中,则此link可能会有所帮助。