2013-02-26 95 views
-3

我有一个需要打开的html文件。使用相对路径打开html文件

我用这个代码

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

当你看到我使用的相对路径文件。 但它没有奏效。 它抛出一个错误:

THE SYSTEM CANNOT FIND THE FILE SPECIFIED

+0

究竟是什么问题? – jAC 2013-02-26 11:28:08

+0

你需要打开阅读?您想做什么? – 2013-02-26 11:30:59

+0

请告诉我们代码?什么是错误或问题?你有例外吗? – Tomtom 2013-02-26 11:37:41

回答

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"); 

The advantage of @-quoting is that escape sequences are not processed, which makes it easy to write [and read]

欲了解更多信息看here

编辑:

如果该文件是在ApplicationDirectory存在,这link能有所帮助。