web-dev-qa-db-ja.com

Webサービスで現在のディレクトリを取得する方法

System.IO.Directory.GetCurrentDirectory()を使用してWebサービスの現在のディレクトリを取得していますが、現在のディレクトリは取得できません。 Webサービスで現在のディレクトリを取得するにはどうすればよいですか?

おかげでスチュアート

32
user23149

Webサービスでは、httpコンテキストで実行しています。そう、

HttpContext.Current.Server.MapPath("~/") 

あなたに答えを与えます。

46
driis

HttpContext.Current.Server.MapPath(".")は、現在の作業ディレクトリを提供します。

しかし、潜在的にHttpContextの外にいるというRohan Westのコメントには、単に電話する方が良いでしょう。

HostingEnvironment.MapPath(".")

詳細を参照してください こちら

22
felickz

使用できます

AppDomain.CurrentDomain.BaseDirectory;

これにより、アプリケーションのルートディレクトリが得られます。

21
user3866085

HttpContext.Current.Server.MapPath( "〜/")は、アプリケーションまたは仮想ディレクトリのルートにマップします。

HttpContext.Current.Server.MapPath( "〜/")<-ROOT
HttpContext.Current.Server.MapPath( "。")<-CURRENT DIRECTORY
HttpContext.Current.Server.MapPath( "..")<-PARENT DIRECTORY

上記はすべて相対的であるため、任意の組み合わせでディレクトリツリーを走査できます。

18
MiloTheGreat

最良の方法は

HostingEnvironment.ApplicationPhysicalPathSystem.Web.Hosting

詳細については、 このリンク を参照してください。

10
Damith

HttpContext.Current.Server.MapPath("~/")はアプリケーションのルートを取得しますか?

おそらくそこからのパスを知っているので、これはおそらく最も可能性が高いです。

興味深いかもしれない別のオプション:

HttpContext.Current.Server.MapPath("/Directory/") 

これは、アプリケーションのルートから何に関係なく構築されます。

最初のスラッシュがないと、これは呼び出し元のディレクトリを開始として取得します。

HttpContext.Current.Server.MapPath("Directory/") 
6
dove

HttpContext.Current.Server.MapPath( "..")[(。)の代わりに2つの(..)ドットを観察]は、サイトの仮想ディレクトリの物理ディレクトリを提供します!

0
HydPhani