Code:
/ DotNET / DotNET / 8.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
- FormatConvertedBitmap.cs
- HandleExceptionArgs.cs
- QueryLifecycle.cs
- EffectiveValueEntry.cs
- CodeObjectCreateExpression.cs
- EventProviderWriter.cs
- XmlSchemaSimpleType.cs
- XPathAncestorIterator.cs
- SqlCacheDependencyDatabase.cs
- GridViewColumnCollection.cs
- DataGridCellAutomationPeer.cs
- IPipelineRuntime.cs
- FrameworkEventSource.cs
- VirtualPathProvider.cs
- JsonByteArrayDataContract.cs
- SqlExpander.cs
- TypefaceMap.cs
- MetadataPropertyvalue.cs
- BitmapFrameEncode.cs
- DesignerSerializerAttribute.cs
- TextRangeEditTables.cs
- Hyperlink.cs
- DiagnosticsConfigurationHandler.cs
- _FtpDataStream.cs
- FormViewActionList.cs
- DataGridViewToolTip.cs
- ConfigXmlWhitespace.cs
- FixUpCollection.cs
- DayRenderEvent.cs
- SecurityResources.cs
- DefaultShape.cs
- RemotingAttributes.cs
- ClientViaElement.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- MappingModelBuildProvider.cs
- OleDbPropertySetGuid.cs
- ExpandCollapseProviderWrapper.cs
- NestedContainer.cs
- MouseGestureValueSerializer.cs
- SerializationAttributes.cs
- InvokeMethodActivityDesigner.cs
- SecurityTokenParameters.cs
- DataServiceSaveChangesEventArgs.cs
- ActivationArguments.cs
- Clause.cs
- StoryFragments.cs
- XamlClipboardData.cs
- XmlSerializer.cs
- TraceHandler.cs
- StrongNameIdentityPermission.cs
- LogReservationCollection.cs
- MarginCollapsingState.cs
- Walker.cs
- SlotInfo.cs
- DesignerHelpers.cs
- ComponentRenameEvent.cs
- StateDesigner.Layouts.cs
- PipelineModuleStepContainer.cs
- COSERVERINFO.cs
- DataGridViewButtonColumn.cs
- DataSourceExpression.cs
- DesignerAttributeInfo.cs
- DiagnosticTraceSource.cs
- EntityContainerEmitter.cs
- IPHostEntry.cs
- AmbientProperties.cs
- IncrementalReadDecoders.cs
- ConfigurationSettings.cs
- EntityDataSourceSelectingEventArgs.cs
- LabelDesigner.cs
- ExecutionPropertyManager.cs
- SwitchElementsCollection.cs
- DesignerActionMethodItem.cs
- ValueOfAction.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- ConstructorArgumentAttribute.cs
- SqlCrossApplyToCrossJoin.cs
- LinearGradientBrush.cs
- InvokerUtil.cs
- Byte.cs
- LocalFileSettingsProvider.cs
- PaintEvent.cs
- PriorityBinding.cs
- _ChunkParse.cs
- OperatingSystem.cs
- Color.cs
- CompressStream.cs
- Events.cs
- WorkflowRuntimeServiceElement.cs
- ConfigXmlWhitespace.cs
- TransformGroup.cs
- GridViewDeletedEventArgs.cs
- DataKey.cs
- DocumentAutomationPeer.cs
- MulticastIPAddressInformationCollection.cs
- COAUTHIDENTITY.cs
- ConstructorNeedsTagAttribute.cs
- StringComparer.cs
- WeakReadOnlyCollection.cs
- WriteableBitmap.cs