Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / VirtualPathUtility.cs / 1305376 / 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 */ 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PieceNameHelper.cs
- WCFServiceClientProxyGenerator.cs
- ContextToken.cs
- Vector3DValueSerializer.cs
- CallContext.cs
- LinqDataSourceDeleteEventArgs.cs
- OleCmdHelper.cs
- RegexTree.cs
- ApplicationHost.cs
- TreeViewCancelEvent.cs
- RouteItem.cs
- DropDownButton.cs
- EdmEntityTypeAttribute.cs
- VBIdentifierName.cs
- FileSystemInfo.cs
- User.cs
- NumberFormatInfo.cs
- DispatchWrapper.cs
- ImageSource.cs
- BinHexEncoder.cs
- ControlType.cs
- DefaultWorkflowTransactionService.cs
- DBCommandBuilder.cs
- BookmarkScopeInfo.cs
- storepermissionattribute.cs
- DataControlButton.cs
- CompModHelpers.cs
- ToolStripItemRenderEventArgs.cs
- FieldInfo.cs
- HttpRequestTraceRecord.cs
- TraceLevelHelper.cs
- AuthorizationSection.cs
- InputBinding.cs
- CompilerTypeWithParams.cs
- Buffer.cs
- QuaternionRotation3D.cs
- ButtonStandardAdapter.cs
- ResourceSet.cs
- TreeNodeBindingCollection.cs
- MutableAssemblyCacheEntry.cs
- ScrollableControlDesigner.cs
- CheckableControlBaseAdapter.cs
- Msec.cs
- FuncTypeConverter.cs
- CustomWebEventKey.cs
- SqlParameterizer.cs
- AutomationPatternInfo.cs
- HttpCookie.cs
- ControlCachePolicy.cs
- ValueQuery.cs
- HtmlGenericControl.cs
- RemoteHelper.cs
- GridItem.cs
- DropSource.cs
- PassportAuthentication.cs
- ObjectListShowCommandsEventArgs.cs
- InternalResources.cs
- WizardStepBase.cs
- milrender.cs
- TableLayout.cs
- EntitySqlQueryBuilder.cs
- ApplicationBuildProvider.cs
- Transform3DGroup.cs
- OrderByBuilder.cs
- IsolatedStorageFileStream.cs
- StubHelpers.cs
- ConfigurationConverterBase.cs
- MonitorWrapper.cs
- XpsS0ValidatingLoader.cs
- ToolboxBitmapAttribute.cs
- ProofTokenCryptoHandle.cs
- IisTraceWebEventProvider.cs
- ButtonFieldBase.cs
- PrePrepareMethodAttribute.cs
- LayoutEvent.cs
- ExtendedPropertyDescriptor.cs
- UnlockInstanceAsyncResult.cs
- WebPartVerb.cs
- ContainerControl.cs
- httpapplicationstate.cs
- ParentQuery.cs
- DataComponentMethodGenerator.cs
- PassportAuthentication.cs
- ConsumerConnectionPointCollection.cs
- TdsParserStaticMethods.cs
- RPIdentityRequirement.cs
- ScrollViewerAutomationPeer.cs
- ActivityBuilderHelper.cs
- ISFTagAndGuidCache.cs
- NodeFunctions.cs
- returneventsaver.cs
- DockingAttribute.cs
- KeyEvent.cs
- MetadataItemSerializer.cs
- WebResourceAttribute.cs
- DockPatternIdentifiers.cs
- keycontainerpermission.cs
- BufferModeSettings.cs
- RightsManagementInformation.cs
- ParameterElementCollection.cs