0

例外が発生した場合にエラーメッセージをログファイルに保存するC#のクラスがあります。次に、アプリケーション(私の場合はWebサイト)のファイルを含む同じフォルダーにログファイルを保存します。Environment.CurrentDirectoryを使用しようとしましたが、Webサイトへのパスが取得されません。Webサイトのディレクトリ内を指す相対ファイルパスを利用するにはどうすればよいですか?

これがクラスのコードです。ご覧のとおり、パスは絶対です。Webサイトのディレクトリ内のフォルダを指す相対ファイルパスに変更したいと思います。

4

3 に答える 3

3

通常Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)、現在のアセンブリが存在するパスを返します。あなたが使うことができます

string logName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyLogFile.log");

ログファイル名を作成します。

問題は、アプリケーションのフォルダへのログインがOSによって許可されているかどうかです。また、Webアプリケーションの場合、ログファイルは公開され、Webブラウザからアクセスできます

于 2012-10-01T14:42:37.687 に答える
2

Webサイトでの使用:

HttpContext.Current.Server.MapPath("~/");
于 2012-10-01T14:42:43.640 に答える
0

この解決策を試すこともできます:

string path  = AppDomain.CurrentDomain.BaseDirectory + "anotherFolder";

これにより、アプリのベースディレクトリとフォルダーがプロジェクト内に配置されます。

于 2013-02-14T13:44:19.683 に答える