Code:
/ FX-1434 / FX-1434 / 1.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
- DataGridItem.cs
- DesignerActionList.cs
- WebPartDisplayModeCancelEventArgs.cs
- CommandHelper.cs
- ItemsPanelTemplate.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- SafeEventLogWriteHandle.cs
- GetKeyedHashRequest.cs
- TableProviderWrapper.cs
- EntityDesignerBuildProvider.cs
- StateRuntime.cs
- Tile.cs
- SymbolType.cs
- SecurityContext.cs
- CommentEmitter.cs
- DurationConverter.cs
- XamlParser.cs
- Currency.cs
- ConstNode.cs
- RSAPKCS1KeyExchangeFormatter.cs
- PropertyToken.cs
- HandlerBase.cs
- X509CertificateCollection.cs
- ColorMap.cs
- RC2.cs
- DBDataPermissionAttribute.cs
- SiteOfOriginPart.cs
- SecurityPermission.cs
- _SSPISessionCache.cs
- InvalidOleVariantTypeException.cs
- SafeCertificateStore.cs
- SafeNativeMethods.cs
- SafeRsaProviderHandle.cs
- DesignTimeParseData.cs
- DataGridColumn.cs
- ProcessHostConfigUtils.cs
- SecurityTokenResolver.cs
- DelegatedStream.cs
- ConvertEvent.cs
- EngineSite.cs
- infer.cs
- MenuAdapter.cs
- Publisher.cs
- SQLSingleStorage.cs
- MessageSmuggler.cs
- TableLayoutPanel.cs
- FrameworkTextComposition.cs
- ContactManager.cs
- SessionIDManager.cs
- DefaultClaimSet.cs
- LinkButton.cs
- SortExpressionBuilder.cs
- WebPartConnection.cs
- HierarchicalDataTemplate.cs
- DataKeyCollection.cs
- TreeNodeSelectionProcessor.cs
- DatePickerDateValidationErrorEventArgs.cs
- InstanceNameConverter.cs
- ValidatorCollection.cs
- ServiceBusyException.cs
- ModuleBuilderData.cs
- DataGridCellsPanel.cs
- XhtmlBasicLinkAdapter.cs
- BaseAppDomainProtocolHandler.cs
- _NativeSSPI.cs
- FilterableAttribute.cs
- OdbcParameterCollection.cs
- XmlAttributeAttribute.cs
- TypeConverterHelper.cs
- Classification.cs
- SemaphoreFullException.cs
- TrackingExtract.cs
- DataListItem.cs
- ProcessHost.cs
- TableRowCollection.cs
- InfoCardTrace.cs
- SoapBinding.cs
- TailPinnedEventArgs.cs
- RepeatInfo.cs
- SqlXml.cs
- TargetControlTypeAttribute.cs
- HttpRequest.cs
- ListComponentEditor.cs
- PTManager.cs
- EncoderExceptionFallback.cs
- FontEmbeddingManager.cs
- StorageConditionPropertyMapping.cs
- AssemblyResourceLoader.cs
- HttpsChannelListener.cs
- DataGridBeginningEditEventArgs.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- ProcessModelSection.cs
- RefType.cs
- PartitionedStreamMerger.cs
- VerificationException.cs
- StickyNoteContentControl.cs
- MenuScrollingVisibilityConverter.cs
- TextProperties.cs
- DataBindingHandlerAttribute.cs
- ToolStripOverflow.cs