Поделиться через


VirtualPathUtility Класс

Определение

Предоставляет служебные методы для основных операций с виртуальным путем.

public ref class VirtualPathUtility abstract sealed
public static class VirtualPathUtility
type VirtualPathUtility = class
Public Class VirtualPathUtility
Наследование
VirtualPathUtility

Примеры

В следующем примере кода показано, как использовать класс и некоторые VirtualPathUtility его методы. Во-первых FilePath , свойство создает виртуальный путь к веб-странице. Методы GetFileName, GetExtensionи GetDirectory возвращают сведения о виртуальном пути. CurrentExecutionFilePath Затем свойство создает виртуальный путь к текущему запросу, который может отличаться от FilePath свойства, если Redirect был вызван метод . Методы IsAbsolute, IsAppRelativeи ToAppRelative возвращают сведения о виртуальном пути.

<%@ 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 серверных элементов управления и серверного кода вместо относительных и абсолютных путей обычно используются виртуальные пути, использующие корневой оператор веб-приложения ( тильда (~). Дополнительные сведения см . в разделе ASP.NET пути веб-проекта.

Используйте класс , VirtualPathUtility если необходимо преобразовать относительные пути приложения в абсолютные виртуальные пути, как это может быть в случае разработки пользовательского обработчика веб-службы.

Абсолютный виртуальный путь начинается с литеральной косой черты (/). Относительный виртуальный путь относится к корневому каталогу приложения, если это просто тильда (~) или начинается с тильды и двойной обратной косой черты (~\\) или тильды и косой черты (~/). Относительный виртуальный путь делает путь независимым от приложения.

Виртуальный каталог для приложения можно получить из AppDomainAppVirtualPath свойств и ApplicationPath .

Примечание

Класс VirtualPathUtility не предназначен для обеспечения безопасности или канонизации. Дополнительные сведения о безопасности веб-приложений см. в статье Обзор угроз безопасности веб-приложений. Общие функции обработки 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)

Преобразует виртуальный путь в путь, зависящий от приложения, используя указанный путь приложения.

Применяется к

См. также раздел