我有一个需要打开的 html 文件。
我用了这段代码
try
{
Process.Start("HelpPage.htm");
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
如您所见,我使用了文件的相对路径。但它没有用。它抛出一个错误:
该系统找不到指定的文件
从您所写的内容来看,我认为问题在于您的路径 - 正如您已经知道的那样 - 是相对的。
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 中,此链接可能会有所帮助。