我有一个需要打开的html文件。
我使用了这段代码
try
{
Process.Start("HelpPage.htm");
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
如您所见,我使用了文件的相对路径。 但它没有用。 它抛出一个错误:
系统无法找到指定的文件
答案 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可能会有所帮助。