Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / VirtualPathUtility.cs / 3 / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ButtonBase.cs
- IxmlLineInfo.cs
- ResourcePool.cs
- EnlistmentTraceIdentifier.cs
- SecurityResources.cs
- HostingEnvironmentWrapper.cs
- TreeNodeEventArgs.cs
- DocumentGridContextMenu.cs
- _ListenerResponseStream.cs
- CommandEventArgs.cs
- DirectoryInfo.cs
- _BaseOverlappedAsyncResult.cs
- ResourceContainer.cs
- Size.cs
- NamespaceExpr.cs
- AspNetCompatibilityRequirementsAttribute.cs
- MSAAEventDispatcher.cs
- BaseResourcesBuildProvider.cs
- SystemIPv4InterfaceProperties.cs
- StrokeNode.cs
- NominalTypeEliminator.cs
- ToolStripControlHost.cs
- GeometryHitTestResult.cs
- SiteMapSection.cs
- StaticTextPointer.cs
- MenuItemCollectionEditorDialog.cs
- oledbconnectionstring.cs
- ToolBarPanel.cs
- HttpCapabilitiesSectionHandler.cs
- SqlWebEventProvider.cs
- InitializeCorrelation.cs
- TreeNodeConverter.cs
- XsdDataContractExporter.cs
- XmlDataSourceView.cs
- PrintSchema.cs
- ToolCreatedEventArgs.cs
- WebPartsSection.cs
- ApplicationHost.cs
- MetadataArtifactLoader.cs
- XmlCountingReader.cs
- OleDbParameterCollection.cs
- InkCollectionBehavior.cs
- WorkflowItemPresenter.cs
- SafeUserTokenHandle.cs
- Freezable.cs
- MatrixStack.cs
- ConstructorBuilder.cs
- CharacterMetricsDictionary.cs
- TreeNodeEventArgs.cs
- BitmapScalingModeValidation.cs
- SerializationInfoEnumerator.cs
- CollectionConverter.cs
- OdbcConnectionString.cs
- storepermissionattribute.cs
- CultureSpecificStringDictionary.cs
- GenericWebPart.cs
- XmlQuerySequence.cs
- PenContexts.cs
- SystemKeyConverter.cs
- PropertyEmitterBase.cs
- TypeElement.cs
- PolyLineSegmentFigureLogic.cs
- ErrorHandler.cs
- TreeNode.cs
- WebBrowsableAttribute.cs
- OciEnlistContext.cs
- KnownIds.cs
- Perspective.cs
- GPPOINT.cs
- RepeatBehaviorConverter.cs
- WebPartsSection.cs
- EncryptedReference.cs
- RuntimeEnvironment.cs
- Control.cs
- TextRenderingModeValidation.cs
- SystemWebExtensionsSectionGroup.cs
- EntityContainerAssociationSet.cs
- HtmlFormAdapter.cs
- PropertyGridEditorPart.cs
- StringArrayConverter.cs
- StandardTransformFactory.cs
- Scanner.cs
- Int32Storage.cs
- XmlLoader.cs
- MessagePropertyFilter.cs
- Axis.cs
- SHA384.cs
- HyperLink.cs
- XPathBinder.cs
- HandoffBehavior.cs
- HashJoinQueryOperatorEnumerator.cs
- CallContext.cs
- Delegate.cs
- Win32MouseDevice.cs
- PathGeometry.cs
- XamlToRtfWriter.cs
- Lookup.cs
- Rfc2898DeriveBytes.cs
- FileChangesMonitor.cs
- WorkflowServiceBuildProvider.cs