開く必要がある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");
ここでは、2番目のバックスラッシュでバックスラッシュをマスクします。
Process.Start(@"X:\myFolder\myFolder2\myHTMLfile.html");
@-quotingの利点は、エスケープシーケンスが処理されないことです。これにより、書き込み[および読み取り]が簡単になります。
詳細については、こちらをご覧ください
編集:
ファイルがApplicationDirectoryに存在する場合は、このリンクが役立つ可能性があります。