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
- BaseResourcesBuildProvider.cs
- XmlUrlResolver.cs
- ProfileBuildProvider.cs
- SqlConnectionStringBuilder.cs
- JsonFormatGeneratorStatics.cs
- EntityReference.cs
- ImageSource.cs
- EntityDataSourceWizardForm.cs
- InkPresenterAutomationPeer.cs
- Configuration.cs
- CompilationUtil.cs
- BackStopAuthenticationModule.cs
- ResourcePermissionBaseEntry.cs
- ArgumentNullException.cs
- MatrixStack.cs
- PostBackOptions.cs
- ThrowHelper.cs
- SpnegoTokenAuthenticator.cs
- TemplateAction.cs
- BufferedReadStream.cs
- TypeUsageBuilder.cs
- FocusWithinProperty.cs
- NotImplementedException.cs
- FileFormatException.cs
- DataGridAddNewRow.cs
- GifBitmapDecoder.cs
- TableCellAutomationPeer.cs
- DbDataAdapter.cs
- KeyNotFoundException.cs
- StateDesigner.Helpers.cs
- CacheMemory.cs
- KeyedByTypeCollection.cs
- SecurityRuntime.cs
- CompositeActivityValidator.cs
- basecomparevalidator.cs
- MenuBase.cs
- ConfigurationSectionGroupCollection.cs
- ItemsPresenter.cs
- ArgIterator.cs
- RoleManagerSection.cs
- WebPartCloseVerb.cs
- DataGridItemCollection.cs
- FileUtil.cs
- WpfKnownMember.cs
- XmlSchemaComplexContent.cs
- ControlPersister.cs
- UriTemplateLiteralPathSegment.cs
- GestureRecognizer.cs
- Processor.cs
- Table.cs
- DiagnosticEventProvider.cs
- AutoCompleteStringCollection.cs
- DataGridViewToolTip.cs
- WindowCollection.cs
- DocumentationServerProtocol.cs
- Logging.cs
- WebSysDescriptionAttribute.cs
- MarkupObject.cs
- IconHelper.cs
- WindowsToolbarAsMenu.cs
- _BufferOffsetSize.cs
- BrowserCapabilitiesFactory35.cs
- SqlXml.cs
- ClientSettingsProvider.cs
- ConfigurationElementProperty.cs
- xmlsaver.cs
- WebHttpElement.cs
- RawStylusInputCustomDataList.cs
- TypeDelegator.cs
- SchemaNames.cs
- OutputScope.cs
- ClearCollection.cs
- SqlCaseSimplifier.cs
- COM2IProvidePropertyBuilderHandler.cs
- FormDocumentDesigner.cs
- WindowsFormsHostPropertyMap.cs
- EndpointInfo.cs
- StaticResourceExtension.cs
- WindowsGraphicsWrapper.cs
- StoreAnnotationsMap.cs
- CombinedGeometry.cs
- DBCommand.cs
- HelpEvent.cs
- ThicknessKeyFrameCollection.cs
- SafeReadContext.cs
- securitycriticaldataClass.cs
- CommandDevice.cs
- TreeNode.cs
- ConnectionProviderAttribute.cs
- StringInfo.cs
- DragEventArgs.cs
- SetIterators.cs
- WebSysDefaultValueAttribute.cs
- DateTimeOffsetConverter.cs
- AstNode.cs
- DataTemplateSelector.cs
- TrackingLocationCollection.cs
- XslTransform.cs
- SerialReceived.cs
- IssuedTokenClientBehaviorsElementCollection.cs