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
- CopyCodeAction.cs
- DataGridViewRowCollection.cs
- FontFaceLayoutInfo.cs
- ConnectionInterfaceCollection.cs
- ComponentConverter.cs
- SafeFileHandle.cs
- XPathAncestorIterator.cs
- WebRequest.cs
- ManagementInstaller.cs
- SQLDouble.cs
- DoubleUtil.cs
- AlternateView.cs
- ManagementEventWatcher.cs
- ConditionalWeakTable.cs
- SqlDataSourceConnectionPanel.cs
- PageThemeCodeDomTreeGenerator.cs
- ShaderEffect.cs
- CroppedBitmap.cs
- EndpointAddressProcessor.cs
- FileVersion.cs
- EnumMember.cs
- GridProviderWrapper.cs
- SmiRequestExecutor.cs
- QueryCursorEventArgs.cs
- UICuesEvent.cs
- GatewayDefinition.cs
- IODescriptionAttribute.cs
- SchemaNotation.cs
- ErrorProvider.cs
- DocumentViewerBaseAutomationPeer.cs
- DrawToolTipEventArgs.cs
- InvalidAsynchronousStateException.cs
- SrgsRulesCollection.cs
- SyndicationFeed.cs
- OSEnvironmentHelper.cs
- ParameterBuilder.cs
- OdbcConnectionFactory.cs
- SoapEnumAttribute.cs
- storepermissionattribute.cs
- versioninfo.cs
- itemelement.cs
- XmlSerializationReader.cs
- AxisAngleRotation3D.cs
- EnumConverter.cs
- RowBinding.cs
- ColorConverter.cs
- BitmapEncoder.cs
- ExternalDataExchangeService.cs
- HtmlEncodedRawTextWriter.cs
- metadatamappinghashervisitor.cs
- ListViewItemSelectionChangedEvent.cs
- TcpAppDomainProtocolHandler.cs
- EndPoint.cs
- TraceListeners.cs
- ListViewItemEventArgs.cs
- DBBindings.cs
- GlobalEventManager.cs
- DeferredSelectedIndexReference.cs
- TemplateXamlTreeBuilder.cs
- LayoutTableCell.cs
- UpdateCompiler.cs
- MarkupWriter.cs
- DiscreteKeyFrames.cs
- SelectionPatternIdentifiers.cs
- FocusWithinProperty.cs
- TabControlCancelEvent.cs
- OlePropertyStructs.cs
- ToolStripDropTargetManager.cs
- HelloMessageCD1.cs
- KnownAssemblyEntry.cs
- DataGridItemAttachedStorage.cs
- Connector.cs
- DataBindingCollection.cs
- TraceHandler.cs
- Enumerable.cs
- BigInt.cs
- PhoneCallDesigner.cs
- RolePrincipal.cs
- BaseCollection.cs
- DataGridViewRowConverter.cs
- TextBoxBase.cs
- CommandLibraryHelper.cs
- cookieexception.cs
- CachedCompositeFamily.cs
- DefaultPrintController.cs
- LambdaCompiler.Generated.cs
- Operand.cs
- XmlBinaryReader.cs
- PipelineModuleStepContainer.cs
- Attributes.cs
- ToolStripDesignerUtils.cs
- SQLChars.cs
- FixedTextSelectionProcessor.cs
- DropSource.cs
- InputManager.cs
- COM2PictureConverter.cs
- DesignerProperties.cs
- KeyEventArgs.cs
- TrustManagerPromptUI.cs
- TileBrush.cs