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
- DataGridState.cs
- SignedXml.cs
- ErrorLog.cs
- ValidatedControlConverter.cs
- ControlBindingsCollection.cs
- DnsPermission.cs
- CatalogPart.cs
- PropertyInfoSet.cs
- XmlNamespaceMapping.cs
- TouchesCapturedWithinProperty.cs
- UniqueConstraint.cs
- SessionPageStatePersister.cs
- ErrorInfoXmlDocument.cs
- SoapDocumentMethodAttribute.cs
- RegexParser.cs
- FileDialogPermission.cs
- ImageFormat.cs
- OdbcParameterCollection.cs
- TextEffectCollection.cs
- HeaderCollection.cs
- TabPanel.cs
- Positioning.cs
- GenericIdentity.cs
- WebBaseEventKeyComparer.cs
- ImageConverter.cs
- CustomTypeDescriptor.cs
- HighContrastHelper.cs
- RegionInfo.cs
- SecurityAppliedMessage.cs
- CatalogPartDesigner.cs
- WebPartConnection.cs
- ClientTargetCollection.cs
- AccessDataSourceView.cs
- PathGradientBrush.cs
- SvcMapFileSerializer.cs
- CatchDesigner.xaml.cs
- RoutedPropertyChangedEventArgs.cs
- SearchForVirtualItemEventArgs.cs
- Matrix.cs
- ControlPropertyNameConverter.cs
- ServiceOperationListItem.cs
- FlowThrottle.cs
- XmlConvert.cs
- WebServiceEndpoint.cs
- CodeEventReferenceExpression.cs
- ConfigXmlElement.cs
- BooleanExpr.cs
- MultiTrigger.cs
- MulticastOption.cs
- EntityCommand.cs
- ColumnMapTranslator.cs
- AppSecurityManager.cs
- SafePointer.cs
- SelectedPathEditor.cs
- DataSourceCacheDurationConverter.cs
- Animatable.cs
- HtmlDocument.cs
- PropertyTabChangedEvent.cs
- CryptoKeySecurity.cs
- ResXResourceWriter.cs
- SystemGatewayIPAddressInformation.cs
- DataServiceRequest.cs
- AutomationElement.cs
- PeerNameRecordCollection.cs
- GeometryModel3D.cs
- DataServiceRequestOfT.cs
- ObjectSet.cs
- SelfIssuedAuthRSACryptoProvider.cs
- TdsParserSessionPool.cs
- TransactionWaitAsyncResult.cs
- PasswordDeriveBytes.cs
- SamlAuthorityBinding.cs
- File.cs
- WebBodyFormatMessageProperty.cs
- TdsParserHelperClasses.cs
- WindowProviderWrapper.cs
- AcceleratedTokenAuthenticator.cs
- MetabaseServerConfig.cs
- WinCategoryAttribute.cs
- XmlLinkedNode.cs
- OleDbParameterCollection.cs
- httpapplicationstate.cs
- DataGridViewSelectedCellCollection.cs
- CssStyleCollection.cs
- RequestQueue.cs
- ObjectSpanRewriter.cs
- AddInEnvironment.cs
- PaintValueEventArgs.cs
- LayoutDump.cs
- SqlTrackingWorkflowInstance.cs
- GifBitmapEncoder.cs
- PrivilegeNotHeldException.cs
- designeractionbehavior.cs
- StatusStrip.cs
- PersistencePipeline.cs
- BinaryObjectInfo.cs
- CaseStatement.cs
- GridLengthConverter.cs
- GridItem.cs
- ModulesEntry.cs