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
- _SecureChannel.cs
- WmlLabelAdapter.cs
- DeviceSpecificDialogCachedState.cs
- HtmlControlPersistable.cs
- BookmarkOptionsHelper.cs
- ModulesEntry.cs
- BitmapEffectDrawing.cs
- DocumentPageHost.cs
- UpDownBase.cs
- DataSourceControl.cs
- MemberInfoSerializationHolder.cs
- ToolstripProfessionalRenderer.cs
- MemberMemberBinding.cs
- RequestQueue.cs
- HashMembershipCondition.cs
- DataServiceQuery.cs
- DateTimeOffsetStorage.cs
- SQLSingleStorage.cs
- AttributedMetaModel.cs
- RegisteredScript.cs
- LineServicesRun.cs
- Classification.cs
- EntityConnection.cs
- CompleteWizardStep.cs
- XPathDocumentNavigator.cs
- PaintEvent.cs
- SqlCharStream.cs
- InputReferenceExpression.cs
- Serializer.cs
- PropertyGridView.cs
- FileDialogPermission.cs
- xdrvalidator.cs
- UnicastIPAddressInformationCollection.cs
- WSSecurityPolicy12.cs
- KeyedCollection.cs
- SourceLocationProvider.cs
- ExpressionReplacer.cs
- Graph.cs
- DockingAttribute.cs
- SqlDataSourceStatusEventArgs.cs
- SoapAttributes.cs
- PathData.cs
- securitycriticaldataClass.cs
- ExtendLockCommand.cs
- HtmlInputCheckBox.cs
- QuaternionAnimationBase.cs
- BufferedWebEventProvider.cs
- BinaryObjectWriter.cs
- ClientSettingsStore.cs
- DetailsViewInsertedEventArgs.cs
- GeneralTransform.cs
- SqlNotificationEventArgs.cs
- NumberAction.cs
- DeviceContext.cs
- SingleStorage.cs
- DropDownList.cs
- CompileXomlTask.cs
- Operand.cs
- CrossAppDomainChannel.cs
- MouseOverProperty.cs
- XPathConvert.cs
- SpellerError.cs
- ServiceDocumentFormatter.cs
- UriTemplateVariableQueryValue.cs
- ColorKeyFrameCollection.cs
- HTMLTagNameToTypeMapper.cs
- NumberFormatInfo.cs
- PropertyInfo.cs
- VirtualPathProvider.cs
- ListViewContainer.cs
- XmlFormatWriterGenerator.cs
- SourceLocationProvider.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DbDataReader.cs
- GeneralTransform2DTo3DTo2D.cs
- InputBindingCollection.cs
- PeerNameResolver.cs
- TextSelectionProcessor.cs
- MetaColumn.cs
- ObjectComplexPropertyMapping.cs
- RightsManagementInformation.cs
- RawStylusInputReport.cs
- TextDpi.cs
- SessionStateItemCollection.cs
- WeakEventManager.cs
- XPathBuilder.cs
- DataList.cs
- SecurityUniqueId.cs
- EventDescriptorCollection.cs
- WizardPanel.cs
- WindowsFormsSynchronizationContext.cs
- BamlLocalizabilityResolver.cs
- StackBuilderSink.cs
- AsymmetricSignatureDeformatter.cs
- DataContext.cs
- TextTrailingCharacterEllipsis.cs
- UnSafeCharBuffer.cs
- NavigationEventArgs.cs
- SynchronizedPool.cs
- StringUtil.cs