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

ここでは、2番目のバックスラッシュでバックスラッシュをマスクします。

Process.Start(@"X:\myFolder\myFolder2\myHTMLfile.html"); 

@-quotingの利点は、エスケープシーケンスが処理されないことです。これにより、書き込み[および読み取り]が簡単になります。

詳細については、こちらをご覧ください

編集:

ファイルがApplicationDirectoryに存在する場合は、このリンクが役立つ可能性があります。

于 2013-02-26T12:57:41.010 に答える