-3

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

我用了这段代码

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

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

该系统找不到指定的文件

4

1 回答 1

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 的优点是不处理转义序列,这使得编写[和阅读]变得容易

欲了解更多信息,请看这里

编辑:

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

于 2013-02-26T12:57:41.010 回答