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
- PassportAuthenticationModule.cs
- RepeatInfo.cs
- SchemaTableOptionalColumn.cs
- PageAsyncTaskManager.cs
- AsynchronousChannelMergeEnumerator.cs
- DummyDataSource.cs
- LongTypeConverter.cs
- FloatAverageAggregationOperator.cs
- TextServicesDisplayAttribute.cs
- ManipulationDelta.cs
- WhileDesigner.cs
- ReadingWritingEntityEventArgs.cs
- RelationshipWrapper.cs
- SelectorAutomationPeer.cs
- ResetableIterator.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- DurableErrorHandler.cs
- TaskResultSetter.cs
- SqlParameterizer.cs
- HMACSHA256.cs
- UniqueIdentifierService.cs
- MULTI_QI.cs
- SafeNativeMethods.cs
- DoubleConverter.cs
- HostingEnvironmentSection.cs
- DataGridViewAccessibleObject.cs
- DataServiceKeyAttribute.cs
- ObjectReaderCompiler.cs
- DocumentPageHost.cs
- EndpointDiscoveryMetadataCD1.cs
- CatalogPartCollection.cs
- TextEditorTables.cs
- BitmapCodecInfoInternal.cs
- QueueProcessor.cs
- ProtocolsConfigurationEntry.cs
- Main.cs
- Size3DValueSerializer.cs
- ChannelSinkStacks.cs
- OdbcEnvironment.cs
- CollectionViewGroupRoot.cs
- UIElementParaClient.cs
- StateInitializationDesigner.cs
- OdbcEnvironment.cs
- TableLayoutColumnStyleCollection.cs
- XmlILModule.cs
- SafeNativeMethods.cs
- TypeUtil.cs
- LinkTarget.cs
- InternalCache.cs
- FunctionDescription.cs
- RectangleHotSpot.cs
- ColorTransform.cs
- ResourceDisplayNameAttribute.cs
- XmlAttribute.cs
- SqlServer2KCompatibilityCheck.cs
- DictionaryEntry.cs
- ContextStaticAttribute.cs
- LinkedList.cs
- PassportAuthenticationModule.cs
- LinkDescriptor.cs
- SortedList.cs
- FactoryGenerator.cs
- ProviderManager.cs
- XmlSerializationGeneratedCode.cs
- ContentPresenter.cs
- FlowDocumentReader.cs
- VerificationException.cs
- MetricEntry.cs
- Array.cs
- RequestBringIntoViewEventArgs.cs
- FixedSOMTableRow.cs
- DataServiceContext.cs
- TextBounds.cs
- ReflectionUtil.cs
- PrintPageEvent.cs
- ReadOnlyCollection.cs
- EntityReference.cs
- EntityKeyElement.cs
- SchemaManager.cs
- ResXFileRef.cs
- UriTemplatePathSegment.cs
- SpecialFolderEnumConverter.cs
- IisTraceWebEventProvider.cs
- ConnectionStringEditor.cs
- HwndHost.cs
- ChannelBinding.cs
- RevocationPoint.cs
- QueueProcessor.cs
- XsdDataContractExporter.cs
- BooleanExpr.cs
- ImageBrush.cs
- SqlClientWrapperSmiStream.cs
- AddingNewEventArgs.cs
- ClientSettingsStore.cs
- TabRenderer.cs
- Application.cs
- CollectionType.cs
- XmlProcessingInstruction.cs
- TripleDESCryptoServiceProvider.cs
- BrowserTree.cs