ASP.NET アプリケーションのスタートアップ コード (つまり、要求なし) で、アプリのルートへのパスを取得する必要があります。ルート ディレクトリから離れたフォルダーにあるファイルを開くには、これが必要です。
どうすればこれを入手できますか?
ASP.NET アプリケーションのスタートアップ コード (つまり、要求なし) で、アプリのルートへのパスを取得する必要があります。ルート ディレクトリから離れたフォルダーにあるファイルを開くには、これが必要です。
どうすればこれを入手できますか?
Server.MapPath("~");
ディスク上のパスとして、現在のアプリケーションのルート ディレクトリを取得します。例えば、C:\inetpub\...
この~
文字は、ASP.NET コントロールの Web パスの一部としても使用でき、アプリケーションへの URL を埋めます。
クラスに Server プロパティがない場合は、 static を使用できます
HttpContext.Current.Server.MapPath("~")
HttpRuntime.AppDomainAppPathが利用できない場合に便利HttpContext
です。
たとえば、現在のアプリケーションからの相対パスを取得する低レベル ライブラリ メソッドは、それが Web アプリであるかどうかに関係なく機能する必要があります。
private static string GetDataFilePath() => HttpRuntime.AppDomainAppVirtualPath != null ?
Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data") :
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);