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
- OracleCommandSet.cs
- WSFederationHttpBindingElement.cs
- BamlLocalizableResourceKey.cs
- BitmapEffectInput.cs
- EntityDataSourceEntitySetNameItem.cs
- AmbientLight.cs
- RegisteredArrayDeclaration.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- EventProperty.cs
- CompiledAction.cs
- WebPartPersonalization.cs
- WindowsPrincipal.cs
- SafeEventLogReadHandle.cs
- SystemInfo.cs
- ReceiveSecurityHeaderElementManager.cs
- ReflectionUtil.cs
- TextEditorMouse.cs
- ComponentRenameEvent.cs
- ScopeCompiler.cs
- ParserStreamGeometryContext.cs
- Viewport3DVisual.cs
- AccessibleObject.cs
- DataBoundControlHelper.cs
- BinaryParser.cs
- TargetConverter.cs
- DockEditor.cs
- StandardToolWindows.cs
- ComponentDispatcherThread.cs
- XmlStrings.cs
- CompositeDataBoundControl.cs
- StyleHelper.cs
- ReadOnlyAttribute.cs
- AsyncPostBackTrigger.cs
- CompilerError.cs
- webproxy.cs
- BuildProviderCollection.cs
- ProxyWebPart.cs
- XPathEmptyIterator.cs
- dtdvalidator.cs
- CompleteWizardStep.cs
- Matrix3DStack.cs
- CustomCredentialPolicy.cs
- AssemblyAssociatedContentFileAttribute.cs
- ThousandthOfEmRealDoubles.cs
- TextEditorTyping.cs
- DataObjectCopyingEventArgs.cs
- EditModeSwitchButton.cs
- IRCollection.cs
- WebBrowserNavigatedEventHandler.cs
- MsdtcClusterUtils.cs
- FrameworkElementFactoryMarkupObject.cs
- SourceLineInfo.cs
- ChtmlTextWriter.cs
- BaseProcessProtocolHandler.cs
- DispatcherSynchronizationContext.cs
- VectorAnimation.cs
- CodeMemberMethod.cs
- RequestQueue.cs
- CacheVirtualItemsEvent.cs
- WindowClosedEventArgs.cs
- StateValidator.cs
- XmlSchemaAll.cs
- ImageDrawing.cs
- ControlPager.cs
- SharedStatics.cs
- PairComparer.cs
- AutomationElementCollection.cs
- EntityCommand.cs
- SqlStatistics.cs
- SafeSystemMetrics.cs
- ExceptionUtility.cs
- CacheMode.cs
- EdmError.cs
- CodeAccessSecurityEngine.cs
- RegexCapture.cs
- ResourcesChangeInfo.cs
- RSAPKCS1KeyExchangeFormatter.cs
- FormView.cs
- SerializationUtilities.cs
- HtmlWindow.cs
- HttpContextWrapper.cs
- RemoveStoryboard.cs
- PathNode.cs
- SchemaAttDef.cs
- PolyBezierSegmentFigureLogic.cs
- PreviewPageInfo.cs
- ErrorEventArgs.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- SurrogateEncoder.cs
- XPathNavigatorKeyComparer.cs
- DiagnosticsConfigurationHandler.cs
- ImportOptions.cs
- BindableTemplateBuilder.cs
- SystemIPGlobalProperties.cs
- AuthenticatedStream.cs
- WebScriptServiceHostFactory.cs
- ISAPIApplicationHost.cs
- KeysConverter.cs
- ComponentEvent.cs
- WmlLabelAdapter.cs