.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メソッドを使った例だ。
|
||
| (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#、下:VB) |
HttpContextはSystem.Web名前空間に所属するクラスであるので、System.Web名前空間をusingディレクティブ(C#)やImportsディレクティブ(VB)によってあらかじめインポートしておく必要がある。![]()
| カテゴリ:Webフォーム 処理対象:ディレクトリ&ファイル 使用ライブラリ:HttpServerUtilityクラス(System.Web名前空間) 使用ライブラリ:HttpContextクラス(System.Web名前空間) |
|
||||||||||||||||
| 「.NET TIPS」 |
| 更新履歴 | |
|
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


