Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / VirtualPathUtility.cs / 2 / VirtualPathUtility.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* VirtualPathUtility class
*
* Copyright (c) 2004 Microsoft Corporation
*/
namespace System.Web {
using System.Web.Util;
using System.Security.Permissions;
/*
* Code to perform virtual path operations
*/
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public static class VirtualPathUtility {
/* Discover virtual path type */
public static bool IsAbsolute(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.Create(virtualPath);
return !virtualPathObject.IsRelative && virtualPathObject.VirtualPathStringIfAvailable != null;
}
public static bool IsAppRelative(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.Create(virtualPath);
return virtualPathObject.VirtualPathStringIfAvailable == null;
}
/* Convert between virtual path types */
public static string ToAppRelative(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
return virtualPathObject.AppRelativeVirtualPathString;
}
public static string ToAppRelative(string virtualPath, string applicationPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
// If it was already app relative, just return it
if (virtualPathObject.AppRelativeVirtualPathStringIfAvailable != null)
return virtualPathObject.AppRelativeVirtualPathStringIfAvailable;
VirtualPath appVirtualPath = VirtualPath.CreateAbsoluteTrailingSlash(applicationPath);
return UrlPath.MakeVirtualPathAppRelative(virtualPathObject.VirtualPathString,
appVirtualPath.VirtualPathString, true /*nullIfNotInApp*/);
}
public static string ToAbsolute(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
return virtualPathObject.VirtualPathString;
}
public static string ToAbsolute(string virtualPath, string applicationPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
// If it was already absolute, just return it
if (virtualPathObject.VirtualPathStringIfAvailable != null)
return virtualPathObject.VirtualPathStringIfAvailable;
VirtualPath appVirtualPath = VirtualPath.CreateAbsoluteTrailingSlash(applicationPath);
return UrlPath.MakeVirtualPathAppAbsolute(virtualPathObject.AppRelativeVirtualPathString,
appVirtualPath.VirtualPathString);
}
/* Get pieces of virtual path */
public static string GetFileName(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
return virtualPathObject.FileName;
}
public static string GetDirectory(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
virtualPathObject = virtualPathObject.Parent;
if (virtualPathObject == null)
return null;
return virtualPathObject.VirtualPathStringWhicheverAvailable;
}
public static string GetExtension(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.Create(virtualPath);
return virtualPathObject.Extension;
}
/* Canonicalize virtual paths */
public static string AppendTrailingSlash(string virtualPath) {
return UrlPath.AppendSlashToPathIfNeeded(virtualPath);
}
public static string RemoveTrailingSlash(string virtualPath) {
return UrlPath.RemoveSlashFromPathIfNeeded(virtualPath);
}
// Removing Reduce per DevDiv 43118
#if OLD
public static string Reduce(string virtualPath) {
VirtualPath virtualPathObject = VirtualPath.CreateNonRelative(virtualPath);
return virtualPathObject.VirtualPathString;
}
#endif
/* Work with multiple virtual paths */
public static string Combine(string basePath, string relativePath) {
VirtualPath virtualPath = VirtualPath.Combine(VirtualPath.CreateNonRelative(basePath),
VirtualPath.Create(relativePath));
return virtualPath.VirtualPathStringWhicheverAvailable;
}
public static string MakeRelative(string fromPath, string toPath) {
return UrlPath.MakeRelative(fromPath, toPath);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CmsUtils.cs
- _StreamFramer.cs
- ProcessStartInfo.cs
- UshortList2.cs
- TextRangeEditTables.cs
- SqlBulkCopy.cs
- RecognizedAudio.cs
- MsmqElementBase.cs
- StartUpEventArgs.cs
- RectangleGeometry.cs
- AsymmetricKeyExchangeDeformatter.cs
- BaseCAMarshaler.cs
- ComponentDispatcherThread.cs
- CookieProtection.cs
- DataGridState.cs
- HttpPostClientProtocol.cs
- DesignerInterfaces.cs
- NativeMethods.cs
- MarkupObject.cs
- ReadOnlyAttribute.cs
- RijndaelManagedTransform.cs
- ScriptingAuthenticationServiceSection.cs
- StorageMappingItemCollection.cs
- MultiByteCodec.cs
- DbConnectionFactory.cs
- SynchronousSendBindingElement.cs
- EnumBuilder.cs
- RoleGroupCollection.cs
- PeerNameRegistration.cs
- DefaultValueMapping.cs
- KeyEventArgs.cs
- DataTableMappingCollection.cs
- SerializerWriterEventHandlers.cs
- RightsManagementEncryptedStream.cs
- XPathConvert.cs
- XmlCharCheckingReader.cs
- SafeArrayRankMismatchException.cs
- PageAdapter.cs
- HandlerFactoryWrapper.cs
- DataGridPageChangedEventArgs.cs
- DataControlFieldCollection.cs
- WorkflowPersistenceContext.cs
- AssemblyHash.cs
- TextRenderer.cs
- InheritanceContextChangedEventManager.cs
- DrawingDrawingContext.cs
- Nullable.cs
- EventHandlersStore.cs
- WindowsListViewGroup.cs
- BaseServiceProvider.cs
- TrustSection.cs
- ConstraintEnumerator.cs
- DesignerCategoryAttribute.cs
- Command.cs
- PipeException.cs
- CollectionViewGroupInternal.cs
- System.Data_BID.cs
- PipelineComponent.cs
- URLIdentityPermission.cs
- ExpressionVisitorHelpers.cs
- NetNamedPipeSecurityElement.cs
- TileBrush.cs
- PackageController.cs
- ImplicitInputBrush.cs
- BaseConfigurationRecord.cs
- KeySplineConverter.cs
- AccessibleObject.cs
- DefaultEvaluationContext.cs
- ExtensionSimplifierMarkupObject.cs
- BuildResult.cs
- Matrix3DStack.cs
- DisplayInformation.cs
- InputGestureCollection.cs
- WebServiceEnumData.cs
- SqlDataSourceView.cs
- ParserHooks.cs
- ColorConverter.cs
- DataSourceHelper.cs
- EndGetFileNameFromUserRequest.cs
- ExcludePathInfo.cs
- ContentPresenter.cs
- ExpressionEditorAttribute.cs
- ButtonColumn.cs
- ReturnValue.cs
- sqlcontext.cs
- AssociationType.cs
- Number.cs
- SQLConvert.cs
- UpdateExpressionVisitor.cs
- LogReserveAndAppendState.cs
- EventSinkActivityDesigner.cs
- CodeAccessPermission.cs
- TextEditorThreadLocalStore.cs
- DataKeyArray.cs
- ListView.cs
- MaskDescriptors.cs
- SQLConvert.cs
- CodeAccessPermission.cs
- TargetPerspective.cs
- InkSerializer.cs