53

ASP.NET アプリケーションのスタートアップ コード (つまり、要求なし) で、アプリのルートへのパスを取得する必要があります。ルート ディレクトリから離れたフォルダーにあるファイルを開くには、これが必要です。

どうすればこれを入手できますか?

4

4 に答える 4

87
Server.MapPath("~"); 

ディスク上のパスとして、現在のアプリケーションのルート ディレクトリを取得します。例えば、C:\inetpub\...

この~文字は、ASP.NET コントロールの Web パスの一部としても使用でき、アプリケーションへの URL を埋めます。

クラスに Server プロパティがない場合は、 static を使用できます

HttpContext.Current.Server.MapPath("~")
于 2013-07-16T17:12:37.923 に答える
44

HttpRuntime.AppDomainAppPathが利用できない場合に便利HttpContextです。

たとえば、現在のアプリケーションからの相対パスを取得する低レベル ライブラリ メソッドは、それが Web アプリであるかどうかに関係なく機能する必要があります。

private static string GetDataFilePath() => HttpRuntime.AppDomainAppVirtualPath != null ?
    Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data") :
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
于 2013-07-16T17:13:03.280 に答える