VirtualPathUtility クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説VirtualPathUtility クラスは、仮想パス関連の共通操作に使用するユーティリティ メソッドを提供します。ASP.NET のサーバー コントロールとサーバー コードでは、一般的に、Web アプリケーション ルート演算子であるティルダ (~) を使用する仮想パスが、相対パスや絶対パスの代わりに使用されます。詳細については、「ASP.NET Web サイトのパス」を参照してください。
VirtualPathUtility クラスは、カスタム Web サービス ハンドラの開発時などに、アプリケーション相対パスを絶対仮想パスに変換する必要がある場合に使用します。
絶対仮想パスは、リテラル スラッシュ記号 (/) で始まります。相対仮想パスが、ティルダ (~) のみの場合、ティルダと二重円記号 (~\\) で始まる場合、またはティルダとスラッシュ記号 (~/) で始まる場合は、アプリケーションのルート ディレクトリに対する相対です。仮想パスを相対にすると、パスがアプリケーション依存ではなくなります。
アプリケーションの仮想ディレクトリは AppDomainAppVirtualPath プロパティと ApplicationPath プロパティから取得できます。
メモ |
|---|
| VirtualPathUtility クラスは、セキュリティや標準化を目的としていません。Web アプリケーションのセキュリティの詳細については、「Web アプリケーションのセキュリティ上の脅威の概要」を参照してください。一般的な URL 処理機能については、Uri のトピックを参照してください。 |
使用例VirtualPathUtility クラスとそのメソッドのいくつかを使用する方法を次のコード例に示します。まず、FilePath プロパティが Web ページへの仮想パスを生成します。GetFileName、GetExtension、および GetDirectory の各メソッドが、仮想パスに関する情報を返します。次に、CurrentExecutionFilePath プロパティは現在の要求の仮想パスを生成します。Redirect メソッドが呼び出された場合、生成されたパスは、FilePath と異なることがあります。IsAbsolute、IsAppRelative、および ToAppRelative の各メソッドが、仮想パスに関する情報を返します。
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim sb As New StringBuilder() Dim pathstring As String = Context.Request.FilePath.ToString() sb.Append("Current file path = " & pathstring & "<br>") sb.Append("File name = " & VirtualPathUtility.GetFileName(pathstring).ToString() & "<br>") sb.Append("File extension = " & VirtualPathUtility.GetExtension(pathstring).ToString() & "<br>") sb.Append("Directory = " & VirtualPathUtility.GetDirectory(pathstring).ToString() & "<br>") Response.Write(sb.ToString()) Dim sb2 As New StringBuilder() Dim pathstring1 As String = Context.Request.CurrentExecutionFilePath.ToString() sb2.Append("Current Executing File Path = " & pathstring1.ToString() & "<br>") sb2.Append("Is Absolute = " & VirtualPathUtility.IsAbsolute(pathstring1).ToString() & "<br>") sb2.Append("Is AppRelative = " & VirtualPathUtility.IsAppRelative(pathstring1).ToString() & "<br>") sb2.Append("Make AppRelative = " & VirtualPathUtility.ToAppRelative(pathstring1).ToString() & "<br>") Response.Write(sb2.ToString()) End Sub </script> <html > <head runat="server"> <title>VirtualPathUtility Example</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); String pathstring = Context.Request.FilePath.ToString(); sb.Append("Current file path = " + pathstring + "<br>"); sb.Append("File name = " + VirtualPathUtility.GetFileName(pathstring).ToString() + "<br>"); sb.Append("File extension = " + VirtualPathUtility.GetExtension(pathstring).ToString() + "<br>"); sb.Append("Directory = " + VirtualPathUtility.GetDirectory(pathstring).ToString() + "<br>"); Response.Write(sb.ToString()); StringBuilder sb2 = new StringBuilder(); String pathstring1 = Context.Request.CurrentExecutionFilePath.ToString(); sb2.Append("Current Executing File Path = " + pathstring1.ToString() + "<br>"); sb2.Append("Is Absolute = " + VirtualPathUtility.IsAbsolute(pathstring1).ToString() + "<br>"); sb2.Append("Is AppRelative = " + VirtualPathUtility.IsAppRelative(pathstring1).ToString() + "<br>"); sb2.Append("Make AppRelative = " + VirtualPathUtility.ToAppRelative(pathstring1).ToString() + "<br>"); Response.Write(sb2.ToString()); } </script> <html > <head runat="server"> <title>VirtualPathUtility Example</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
.NET Framework のセキュリティ
継承階層System.Web.VirtualPathUtility
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照- VirtualPathUtility クラスのページへのリンク
.gif)