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
- XPathNavigatorException.cs
- RSAPKCS1SignatureFormatter.cs
- File.cs
- BufferedGraphicsContext.cs
- AssertFilter.cs
- PageParserFilter.cs
- ClientConvert.cs
- ValueSerializer.cs
- SmiEventSink_DeferedProcessing.cs
- DbUpdateCommandTree.cs
- DataKeyArray.cs
- WebHostedComPlusServiceHost.cs
- OpCodes.cs
- PersistenceTypeAttribute.cs
- AutomationPropertyInfo.cs
- WebControl.cs
- JsonServiceDocumentSerializer.cs
- PageThemeCodeDomTreeGenerator.cs
- MapPathBasedVirtualPathProvider.cs
- CharEntityEncoderFallback.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ObjectDataSourceMethodEventArgs.cs
- WebBrowserNavigatingEventHandler.cs
- WebPartMenuStyle.cs
- ProcessDesigner.cs
- ResetableIterator.cs
- DiffuseMaterial.cs
- CallSite.cs
- HMACSHA384.cs
- XmlWrappingReader.cs
- WindowsSlider.cs
- NativeRecognizer.cs
- PersistenceProviderFactory.cs
- XPathDocumentNavigator.cs
- SqlTypeSystemProvider.cs
- DBSchemaTable.cs
- DispatcherFrame.cs
- CodeBlockBuilder.cs
- WebOperationContext.cs
- PlanCompilerUtil.cs
- HealthMonitoringSectionHelper.cs
- BinaryUtilClasses.cs
- EntityDataSourceViewSchema.cs
- CompilationPass2Task.cs
- UnsafeNativeMethods.cs
- ObjectDataSourceWizardForm.cs
- GridView.cs
- XmlNodeComparer.cs
- PersonalizationStateInfoCollection.cs
- RegionInfo.cs
- SystemIPAddressInformation.cs
- DataGridItem.cs
- SQlBooleanStorage.cs
- WebPartConnectionsCloseVerb.cs
- DateTimeConverter2.cs
- InheritanceAttribute.cs
- DbProviderFactoriesConfigurationHandler.cs
- DrawListViewItemEventArgs.cs
- BaseValidator.cs
- WebPartEditorOkVerb.cs
- ProxyWebPart.cs
- EndpointAddressMessageFilter.cs
- DesignerVerbCollection.cs
- DockPattern.cs
- ResizeGrip.cs
- HostingEnvironmentSection.cs
- HttpModuleActionCollection.cs
- CodeDefaultValueExpression.cs
- RequestUriProcessor.cs
- NativeObjectSecurity.cs
- SharedDp.cs
- ScrollItemProviderWrapper.cs
- DescendantOverDescendantQuery.cs
- CodeTryCatchFinallyStatement.cs
- WebPartConnectionsDisconnectVerb.cs
- TypeSchema.cs
- XmlQueryCardinality.cs
- InternalMappingException.cs
- QueryContext.cs
- ValueChangedEventManager.cs
- Menu.cs
- TargetException.cs
- GridSplitter.cs
- OutOfMemoryException.cs
- QueryStatement.cs
- CommonObjectSecurity.cs
- NeutralResourcesLanguageAttribute.cs
- CookielessHelper.cs
- TextRunCache.cs
- DesignerSerializerAttribute.cs
- RowToFieldTransformer.cs
- DispatcherFrame.cs
- TreeNodeBinding.cs
- PrintingPermission.cs
- BindStream.cs
- DeviceContext2.cs
- SqlDataSourceStatusEventArgs.cs
- SettingsProviderCollection.cs
- WindowsClientCredential.cs
- ObjectAnimationUsingKeyFrames.cs