.NET TIPS

[ASP.NET]Webサイトのルートの物理パスを取得するには?[C#、VB]

デジタルアドバンテージ 一色 政彦
2008/11/06
2008/11/11 更新

 Webサイト内に配置したファイルにアクセスしたいなどの目的で、

  Webサイトのルート(例えば「http://localhost:32313/WebSite1/」)

(=厳密にはサイトのホーム・ディレクトリ)に対応する、

  ファイル・システムの物理パス(例えば「C:\WebSites\WebSite1\」)

を取得したい場合がある。

Webサイトのルートの物理パスを取得する方法(基本)

 このような物理パスを取得するには、Serverオブジェクト(厳密には、Webフォームの実体であるPageオブジェクトのServerプロパティから取得できる、HttpServerUtilityクラス(System.Web名前空間)のオブジェクト)のMapPathメソッドを使えばよい。MapPathメソッドは、引数としてWebサイトの仮想パス(ルートなら「./」)を受け取る。

 次のコードは実際にMapPathメソッドを使った例だ。

Label1.Text = Server.MapPath("./");
// 出力例:C:\WebSites\WebSite1\


Label2.Text = Server.MapPath("./Sample.txt");
// 出力例:C:\WebSites\WebSite1\Sample.txt
Label1.Text = Server.MapPath("./")
' 出力例:C:\WebSites\WebSite1\


Label2.Text = Server.MapPath("./Sample.txt")
' 出力例:C:\WebSites\WebSite1\Sample.txt
(Pageオブジェクトの)Server.MapPathメソッドを使うコード例(上:C#、下:VB)
Label1とLabel2はフォーム上に配置したLabelコントロール。

 ただし、上記のコードはWebフォーム(=Pageオブジェクト)のクラス内部で実装する場合にだけ使える実装方法だ。

Webサイトのルートの物理パスを取得する方法(分離コード・モジュール)

 では、Webフォームのクラスの外部、例えば独自に定義したクラス内ではどうすればよいか。これには、HttpContext.Current.Server.MapPathメソッドを使えばよい。つまり、現在のHTTP要求に対するHttpServerUtilityオブジェクトを取得したうえで、そのMapPathメソッドを使うということだ。

 次のコードは実際にHttpContext.Current.Server.MapPathメソッドを使ってみた例である。

HttpContext.Current.Server.MapPath("./");
// 出力例:C:\WebSites\WebSite1\
HttpContext.Current.Server.MapPath("./")
' 出力例:C:\WebSites\WebSite1\
HttpContext.Current.Server.MapPathメソッドを使うコードの例(上:C#、下:VB)

 HttpContextはSystem.Web名前空間に所属するクラスであるので、System.Web名前空間をusingディレクティブ(C#)やImportsディレクティブ(VB)によってあらかじめインポートしておく必要がある。End of Article

カテゴリ:Webフォーム 処理対象:ディレクトリ&ファイル
使用ライブラリ:HttpServerUtilityクラス(System.Web名前空間)
使用ライブラリ:HttpContextクラス(System.Web名前空間)

この記事と関連性の高い別の.NET TIPS
[ASP.NET]サイト共通のレイアウト部分を部品化するには?
[ASP.NET]アプリケーション共通の処理をPage派生クラスで実装するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

更新履歴
【2008/11/11】「サイトのルート」に対して「(=厳密にはサイトのホーム・ディレクトリ)」という補足説明を追記しました。

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH