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
- LocatorPart.cs
- CodeConditionStatement.cs
- DataViewManager.cs
- panel.cs
- IgnoreFileBuildProvider.cs
- TreeNodeBindingDepthConverter.cs
- UICuesEvent.cs
- DoubleStorage.cs
- WebPartEventArgs.cs
- SettingsPropertyValueCollection.cs
- FileResponseElement.cs
- RelationshipEnd.cs
- BufferAllocator.cs
- DropTarget.cs
- ParsedRoute.cs
- listitem.cs
- QilLiteral.cs
- XmlElementCollection.cs
- PointLightBase.cs
- Int32KeyFrameCollection.cs
- PassportAuthentication.cs
- ColumnWidthChangingEvent.cs
- ArrangedElement.cs
- httpserverutility.cs
- AttachmentCollection.cs
- CustomErrorCollection.cs
- PersonalizationAdministration.cs
- SimpleWorkerRequest.cs
- EncoderParameters.cs
- Signature.cs
- PartialClassGenerationTask.cs
- KeyboardDevice.cs
- CanonicalFontFamilyReference.cs
- IntegerValidator.cs
- SmtpMail.cs
- PerformanceCounterNameAttribute.cs
- CoreSwitches.cs
- XmlJsonWriter.cs
- RequiredFieldValidator.cs
- ResolvedKeyFrameEntry.cs
- MemberMaps.cs
- OleDbFactory.cs
- MimePart.cs
- LocatorBase.cs
- MachineSettingsSection.cs
- ForeignKeyConstraint.cs
- CorrelationManager.cs
- LifetimeServices.cs
- ConfigurationValidatorAttribute.cs
- MessageHeaderAttribute.cs
- SerializationSectionGroup.cs
- SamlNameIdentifierClaimResource.cs
- HttpPostClientProtocol.cs
- ContextMenu.cs
- Section.cs
- DragDeltaEventArgs.cs
- FlowLayout.cs
- SapiRecoContext.cs
- TextRangeProviderWrapper.cs
- IERequestCache.cs
- CollectionViewProxy.cs
- DiscoveryReference.cs
- DefinitionBase.cs
- ValuePatternIdentifiers.cs
- EnumBuilder.cs
- _BasicClient.cs
- RegistryDataKey.cs
- ToolStripSystemRenderer.cs
- SyndicationSerializer.cs
- SmtpAuthenticationManager.cs
- xml.cs
- DecimalConstantAttribute.cs
- OLEDB_Util.cs
- SmiMetaDataProperty.cs
- DbCommandDefinition.cs
- TypedServiceOperationListItem.cs
- RowToParametersTransformer.cs
- TypeConverters.cs
- SqlBinder.cs
- OdbcConnectionString.cs
- HitTestWithPointDrawingContextWalker.cs
- MailWebEventProvider.cs
- VBCodeProvider.cs
- httpstaticobjectscollection.cs
- AudioFormatConverter.cs
- LogEntryHeaderv1Deserializer.cs
- PropertySegmentSerializer.cs
- PagerSettings.cs
- TextWriterTraceListener.cs
- DefinitionBase.cs
- XmlArrayAttribute.cs
- FtpRequestCacheValidator.cs
- HttpModulesSection.cs
- WebConfigurationManager.cs
- XsdValidatingReader.cs
- UnsafeNativeMethods.cs
- InstanceKeyCompleteException.cs
- BitmapEffect.cs
- WebPartAddingEventArgs.cs
- SystemFonts.cs