共通仮想パス操作に使用するユーティリティ メソッドを提供します。
名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)
Public NotInheritable Class VirtualPathUtility
public static class VirtualPathUtility
public ref class VirtualPathUtility abstract sealed
public final class VirtualPathUtility
public final class VirtualPathUtility
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>
System.Object
System.Web.VirtualPathUtility
この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。
Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition
Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。
.NET Framework
サポート対象 : 3.0,2.0