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
- ClientEventManager.cs
- GridPattern.cs
- shaperfactory.cs
- ExternalFile.cs
- XsltOutput.cs
- AppDomainInfo.cs
- Perspective.cs
- EntityDataSourceSelectingEventArgs.cs
- PenContexts.cs
- WebPartDisplayMode.cs
- EffectiveValueEntry.cs
- Viewport3DVisual.cs
- ColorEditor.cs
- TextServicesProperty.cs
- XPathNodePointer.cs
- AuthorizationRule.cs
- AlphaSortedEnumConverter.cs
- LocatorManager.cs
- XPathBinder.cs
- Compiler.cs
- Visual.cs
- PerformanceCounterCategory.cs
- MasterPage.cs
- MULTI_QI.cs
- ConnectionStringEditor.cs
- NameTable.cs
- CodePageEncoding.cs
- GenericUriParser.cs
- BufferedStream.cs
- SqlInternalConnection.cs
- StoragePropertyMapping.cs
- MultiView.cs
- SqlStream.cs
- PlatformCulture.cs
- WindowsTitleBar.cs
- CatalogZoneBase.cs
- MSAAWinEventWrap.cs
- StrokeIntersection.cs
- WindowsFormsHost.cs
- ViewPort3D.cs
- StoreAnnotationsMap.cs
- StreamGeometry.cs
- UIElementHelper.cs
- QilName.cs
- UrlEncodedParameterWriter.cs
- PEFileReader.cs
- JoinTreeNode.cs
- SpecularMaterial.cs
- MouseDevice.cs
- Rect3DConverter.cs
- HttpServerChannel.cs
- EntityViewContainer.cs
- Expander.cs
- _AutoWebProxyScriptEngine.cs
- EntityCommandExecutionException.cs
- DoubleStorage.cs
- GenericPrincipal.cs
- FixedSchema.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- EnumerationRangeValidationUtil.cs
- CodeCastExpression.cs
- CompiledXpathExpr.cs
- SoapCodeExporter.cs
- ResponseBodyWriter.cs
- IndexingContentUnit.cs
- figurelengthconverter.cs
- ComponentManagerBroker.cs
- WSHttpSecurity.cs
- StringToken.cs
- UInt64Storage.cs
- XamlSerializerUtil.cs
- StylusButton.cs
- PenContext.cs
- AdCreatedEventArgs.cs
- SchemaImporter.cs
- RelOps.cs
- ActiveDocumentEvent.cs
- Rule.cs
- OleDbFactory.cs
- CustomCredentialPolicy.cs
- SizeAnimationClockResource.cs
- RootBuilder.cs
- UnknownWrapper.cs
- LassoSelectionBehavior.cs
- HexParser.cs
- WorkflowMarkupSerializer.cs
- Process.cs
- SystemIPInterfaceProperties.cs
- EntityTransaction.cs
- ToolStripRenderer.cs
- SafePointer.cs
- HotSpotCollectionEditor.cs
- IntegrationExceptionEventArgs.cs
- GridViewCommandEventArgs.cs
- TreeNode.cs
- TdsParserStateObject.cs
- HopperCache.cs
- AttributedMetaModel.cs
- ChtmlTextWriter.cs
- TextStore.cs