web-dev-qa-db-ja.com

Web.Config内のファイルへのASP.NET相対パス

アプリケーションのファイルへのパスをWeb.Configファイルで指定し、そのパスをコントローラーで呼び出します。私がオンラインで見つけたものから、私はそこへの道のほとんどです。

Web.Config

<appSettings>
    <add key="filePath" value= "~/App_Data/Physicians.xml" />
</appSettings>

コントローラー

//Path of the document       
string xmlData = ConfigurationManager.AppSettings["filePath"].ToString();

ただし、これは間違った場所を指しています。

enter image description here

これを、アプリケーションのルートから始めて、App_Dataフォルダーに保存したファイルを指すようにするにはどうすればよいですか?

10
madvora

Server.MapPathを使用できます。

または、構成ファイルに相対パスのみを保存してから、次を使用します。

<appSettings>
    <add key="filePath" value= "App_Data/Physicians.xml" />
</appSettings>

string relativePath = ConfigurationManager.AppSettings["filePath"];
string combinedPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, relativePath)

後者の手法は非Webアプリケーションで機能するため、間違いなく優れています。

25
Joe