VirtualPathUtility 类

定义

为常见的虚拟路径操作提供实用工具方法。

public ref class VirtualPathUtility abstract sealed
public static class VirtualPathUtility
type VirtualPathUtility = class
Public Class VirtualPathUtility
继承
VirtualPathUtility

示例

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

<%@ 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)
  {
    // <Snippet2> 
    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());
    // </Snippet2>
    
    // <Snippet3>
    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());
    // </Snippet3>
}
</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>
<%@ 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)
    
    ' <Snippet2>
    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())
    ' </Snippet2>
    
    ' <Snippet3>
    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())
    ' </Snippet3>

  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>

注解

VirtualPathUtility 为涉及虚拟路径的常见操作提供实用工具方法。 对于 ASP.NET 服务器控件和服务器代码,通常使用使用 Web 应用程序根运算符的虚拟路径,即波形符 (~) ,而不是相对路径和绝对路径。 有关详细信息,请参阅 ASP.NET Web 项目路径

VirtualPathUtility当需要将应用程序相对路径转换为绝对虚拟路径时,请使用 类,就像开发自定义 Web 服务处理程序时一样。

绝对虚拟路径以文本斜杠标记 (/) 开头。 相对虚拟路径是相对于应用程序根目录的,如果它只是一个波形符 (~) 或以波形符和双反斜杠开头 (~\\) 或波形符和斜杠标记 (~/) 。 使虚拟路径相对化使路径独立于应用程序。

可以从 和 ApplicationPath 属性获取AppDomainAppVirtualPath应用程序的虚拟目录。

注意

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

方法

AppendTrailingSlash(String)

将正斜杠 (/) 追加到虚拟路径的末尾(如果尚不存在正斜杠)。

Combine(String, String)

将一个基路径和一个相对路径进行组合。

GetDirectory(String)

返回虚拟路径的目录部分。

GetExtension(String)

检索虚拟路径中引用的文件的扩展名。

GetFileName(String)

检索虚拟路径中引用的文件的文件名。

IsAbsolute(String)

返回一个布尔值,该值指示指定的虚拟路径是否为绝对路径,也就是以正斜杠 (/) 开头。

IsAppRelative(String)

返回一个布尔值,该值指示指定的虚拟路径是否为相对于应用程序的相对路径。

MakeRelative(String, String)

返回从一个包含根操作符(波形符 [~])的虚拟路径到另一个此类虚拟路径的相对虚拟路径。

RemoveTrailingSlash(String)

从虚拟路径移除末尾的正斜杠 (/)。

ToAbsolute(String)

将虚拟路径转换为应用程序绝对路径。

ToAbsolute(String, String)

使用指定的应用程序路径将虚拟路径转换为应用程序绝对路径。

ToAppRelative(String)

使用 AppDomainAppVirtualPath 属性中的应用程序虚拟路径将虚拟路径转换为应用程序相对路径。

ToAppRelative(String, String)

使用指定的应用程序路径将虚拟路径转换为应用程序相对路径。

适用于

另请参阅