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
- StatusBar.cs
- AssociationSetEnd.cs
- DataBoundControlAdapter.cs
- NavigateEvent.cs
- PolicyDesigner.cs
- GeometryDrawing.cs
- DataTransferEventArgs.cs
- XmlWellformedWriter.cs
- ZoneIdentityPermission.cs
- InputEventArgs.cs
- SafeRightsManagementPubHandle.cs
- SortedList.cs
- UIElementHelper.cs
- TdsParserStaticMethods.cs
- ForwardPositionQuery.cs
- JumpPath.cs
- CodeTypeDeclaration.cs
- RequestCache.cs
- ServiceOperationParameter.cs
- XsdDuration.cs
- DbDataSourceEnumerator.cs
- MenuItem.cs
- CodeExporter.cs
- IIS7WorkerRequest.cs
- ChannelFactoryBase.cs
- StringDictionaryCodeDomSerializer.cs
- ThicknessAnimationUsingKeyFrames.cs
- EditingMode.cs
- RuntimeIdentifierPropertyAttribute.cs
- LogicalExpressionEditor.cs
- ObjectStateManager.cs
- MatrixTransform3D.cs
- TabRenderer.cs
- ColorTransform.cs
- XsltLoader.cs
- followingsibling.cs
- SqlIdentifier.cs
- BinaryMessageEncodingElement.cs
- TableHeaderCell.cs
- TranslateTransform3D.cs
- RoleGroup.cs
- PlatformCulture.cs
- OpacityConverter.cs
- ListViewTableCell.cs
- WinHttpWebProxyFinder.cs
- _FtpControlStream.cs
- WebEventCodes.cs
- FieldInfo.cs
- MessageQueueTransaction.cs
- CodeSnippetExpression.cs
- UpDownBase.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- RangeValuePattern.cs
- DataSourceCacheDurationConverter.cs
- SecureStringHasher.cs
- RootBrowserWindow.cs
- Serializer.cs
- ChangeBlockUndoRecord.cs
- SafeNativeMethods.cs
- ControlParameter.cs
- MsmqIntegrationProcessProtocolHandler.cs
- webproxy.cs
- PanelDesigner.cs
- XmlnsDictionary.cs
- CollectionsUtil.cs
- ProxyWebPartManager.cs
- Size.cs
- GenericAuthenticationEventArgs.cs
- DiagnosticsConfigurationHandler.cs
- HideDisabledControlAdapter.cs
- TranslateTransform3D.cs
- ReadWriteSpinLock.cs
- Frame.cs
- Timer.cs
- ServicesUtilities.cs
- Descriptor.cs
- KeyNotFoundException.cs
- SafeNativeMemoryHandle.cs
- HtmlControl.cs
- WaitingCursor.cs
- XmlCDATASection.cs
- IntegerFacetDescriptionElement.cs
- Quad.cs
- SByteConverter.cs
- SelectorAutomationPeer.cs
- Model3D.cs
- ParameterCollection.cs
- GcHandle.cs
- GridItemPattern.cs
- LinkUtilities.cs
- JavaScriptString.cs
- AnnotationComponentManager.cs
- DataGridViewAdvancedBorderStyle.cs
- CodeArrayCreateExpression.cs
- XmlValidatingReaderImpl.cs
- RequiredFieldValidator.cs
- AttributeQuery.cs
- RegionInfo.cs
- UnsafeNativeMethods.cs
- FrameworkContentElementAutomationPeer.cs