Young.NET

导航

关于System.Web.VirtualPathUtility类

VirtualPathUtility 类为涉及虚拟路径的常见操作提供实用工具方法。对于 ASP.NET 服务器控件和服务器代码,则通常使用那些采用 Web 应用程序根操作符(即代字号“~”)的虚拟路径而不是相对和绝对路径。有关更多信息,请参见 ASP.NET 网站路径。

当您需要将应用程序相对路径转换为绝对虚拟路径时(在开发自定义 Web 服务处理程序时就可能是这种情况),应使用 VirtualPathUtility 类。

绝对虚拟路径以正斜杠 (/) 开头。如果某一虚拟路径仅为一个代字号 (~) 或者以代字号后跟双反斜杠 (~\\) 或一个代字号后跟一个正斜杠 (~/) 开头,则该路径为相对于应用程序根目录的相对虚拟路径。使虚拟路径成为相对路径将使该路径与应用程序无关。

应用程序的虚拟目录可从 AppDomainAppVirtualPathApplicationPath 属性获得。

Note注意

VirtualPathUtility 类不适用于安全或规范化目的。有关 Web 应用程序安全性的更多信息,请参见 Web 应用程序安全威胁概述。有关通用 URL 处理功能,请参见 Uri。

Collapse 图像 下面的代码示例演示如何使用 VirtualPathUtility 类及其某些方法。首先,FilePath 属性生成网页的虚拟路径。GetFileNameGetExtensionGetDirectory 方法返回关于该虚拟路径的信息。接下来,CurrentExecutionFilePath 属性生成当前请求的虚拟路径,如果调用了 Redirect 方法,该路径可能与 FilePath 属性不同。IsAbsoluteIsAppRelativeToAppRelative 方法返回关于该虚拟路径的信息。

Visual Basic 
CopyCode image复制代码
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
            <head runat="server">
            <title>VirtualPathUtility Example</title>
            </head>
            <body>
            <form id="form1" runat="server">
            <div>
            </div>
            </form>
            </body>
            </html>
            




posted on 2007-04-11 11:51  MrYoung  阅读(256)  评论(0)    收藏  举报