Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / VirtualPathUtility.cs / 1305376 / 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 */ 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProxyWebPartManager.cs
- Transform3D.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- HttpServerUtilityBase.cs
- JumpPath.cs
- SmiRequestExecutor.cs
- RefType.cs
- RegexCompiler.cs
- ExplicitDiscriminatorMap.cs
- SqlBuilder.cs
- EventSetter.cs
- ToolBar.cs
- DynamicDataExtensions.cs
- Label.cs
- DataBindingCollection.cs
- LassoHelper.cs
- ResXBuildProvider.cs
- SessionStateItemCollection.cs
- DataGridHeaderBorder.cs
- Soap.cs
- WebPartPersonalization.cs
- PropertyCondition.cs
- EventLogException.cs
- MobileTextWriter.cs
- AdapterUtil.cs
- PersonalizableAttribute.cs
- OracleDataReader.cs
- coordinator.cs
- XmlSchemaChoice.cs
- ResourceSetExpression.cs
- FieldToken.cs
- ActivityBindForm.cs
- LongValidatorAttribute.cs
- RemoteEndpointMessageProperty.cs
- SoapInteropTypes.cs
- Message.cs
- DataContractJsonSerializerOperationBehavior.cs
- MatcherBuilder.cs
- sqlcontext.cs
- MenuItemAutomationPeer.cs
- ColumnCollection.cs
- ChangePasswordDesigner.cs
- WebBrowser.cs
- GenericWebPart.cs
- DataMemberConverter.cs
- ScrollBar.cs
- ImageCollectionEditor.cs
- WebPartEditorCancelVerb.cs
- PerformanceCounter.cs
- NamespaceListProperty.cs
- Storyboard.cs
- BufferedMessageWriter.cs
- HeaderFilter.cs
- latinshape.cs
- AuthenticationConfig.cs
- SerializationSectionGroup.cs
- LazyLoadBehavior.cs
- NullableConverter.cs
- ISFClipboardData.cs
- ButtonChrome.cs
- ProfilePropertyNameValidator.cs
- ConstructorBuilder.cs
- VariantWrapper.cs
- RowToFieldTransformer.cs
- cookie.cs
- ServicePoint.cs
- GradientStop.cs
- DataGridViewRowStateChangedEventArgs.cs
- SqlCharStream.cs
- GcSettings.cs
- DocumentGridContextMenu.cs
- Int16Storage.cs
- SqlCommandSet.cs
- OleDbPermission.cs
- XmlSchemaComplexContentRestriction.cs
- TextTreeRootTextBlock.cs
- GroupQuery.cs
- MetadataSerializer.cs
- SerializationFieldInfo.cs
- TableRowCollection.cs
- AddValidationError.cs
- DataGridLinkButton.cs
- ConsoleTraceListener.cs
- PropertyEmitter.cs
- XmlSchemaProviderAttribute.cs
- JumpList.cs
- EmptyWithCancelationCheckWorkItem.cs
- AssemblyHash.cs
- ImageField.cs
- FontFamilyValueSerializer.cs
- __TransparentProxy.cs
- FileDialogCustomPlacesCollection.cs
- InkPresenter.cs
- VisualBasic.cs
- HttpModule.cs
- ProtectedProviderSettings.cs
- WorkflowViewManager.cs
- PropertyRecord.cs
- AuthorizationRule.cs
- SimpleWebHandlerParser.cs