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
- BindingsCollection.cs
- WeakReference.cs
- TransformCollection.cs
- PersonalizationProviderHelper.cs
- SqlNamer.cs
- WindowsTab.cs
- AuthorizationBehavior.cs
- CuspData.cs
- BackStopAuthenticationModule.cs
- XmlSchemaAttributeGroup.cs
- BindingParameterCollection.cs
- RegexFCD.cs
- LockCookie.cs
- RemoteWebConfigurationHostServer.cs
- _ConnectOverlappedAsyncResult.cs
- RangeContentEnumerator.cs
- TextEditorMouse.cs
- DataListItemEventArgs.cs
- CompilationLock.cs
- ObjectQuery.cs
- Hex.cs
- EntityContainerEmitter.cs
- HashAlgorithm.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- Font.cs
- FormsAuthenticationTicket.cs
- DateTimeUtil.cs
- CheckBox.cs
- CheckedPointers.cs
- SpeakCompletedEventArgs.cs
- ContractMapping.cs
- BuilderInfo.cs
- WebReferencesBuildProvider.cs
- BuildDependencySet.cs
- ProxyManager.cs
- TextBoxAutoCompleteSourceConverter.cs
- Region.cs
- ToolStripContainerDesigner.cs
- KerberosSecurityTokenProvider.cs
- MediaPlayerState.cs
- DetailsViewDeletedEventArgs.cs
- ContextMenu.cs
- EnumerableRowCollection.cs
- OdbcInfoMessageEvent.cs
- OutputCacheProfileCollection.cs
- GeneralTransform3DTo2DTo3D.cs
- _IPv4Address.cs
- DataGridTable.cs
- Pair.cs
- DataGridCommandEventArgs.cs
- StreamInfo.cs
- VirtualDirectoryMapping.cs
- WebPartDisplayMode.cs
- ObjectView.cs
- TextBoxBase.cs
- XmlSortKey.cs
- AnnotationObservableCollection.cs
- SchemaConstraints.cs
- TemplateBindingExpression.cs
- PeerHopCountAttribute.cs
- TextParagraphView.cs
- ToolTipAutomationPeer.cs
- SpeechSynthesizer.cs
- DataIdProcessor.cs
- DnsPermission.cs
- ACL.cs
- FloaterBaseParagraph.cs
- ObjectViewEntityCollectionData.cs
- WindowsStatusBar.cs
- StrokeNodeData.cs
- AssemblyAssociatedContentFileAttribute.cs
- DesignerLoader.cs
- RegexWriter.cs
- Stroke2.cs
- EventLogPropertySelector.cs
- CharEnumerator.cs
- NavigationExpr.cs
- XmlNamedNodeMap.cs
- InfoCardTrace.cs
- CompositionDesigner.cs
- SingletonInstanceContextProvider.cs
- EnumMemberAttribute.cs
- CheckBoxField.cs
- RemoteWebConfigurationHostStream.cs
- XmlSerializationWriter.cs
- List.cs
- BeginStoryboard.cs
- TransformConverter.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- ProfilePropertyMetadata.cs
- FlowchartSizeFeature.cs
- ValidationRule.cs
- RuleSettingsCollection.cs
- SharedStream.cs
- UmAlQuraCalendar.cs
- RuntimeIdentifierPropertyAttribute.cs
- PenContext.cs
- SafeRightsManagementQueryHandle.cs
- LayoutInformation.cs
- _ReceiveMessageOverlappedAsyncResult.cs