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
- XamlNamespaceHelper.cs
- ExpressionBuilderContext.cs
- HostedHttpRequestAsyncResult.cs
- KeyInterop.cs
- PersonalizationProviderHelper.cs
- WindowsFormsHost.cs
- Publisher.cs
- ConfigurationLocation.cs
- EntityCollection.cs
- UnknownBitmapEncoder.cs
- SchemaElementLookUpTable.cs
- Shape.cs
- CalendarDateRangeChangingEventArgs.cs
- DataSetUtil.cs
- CSharpCodeProvider.cs
- SmtpClient.cs
- ClonableStack.cs
- DataServiceSaveChangesEventArgs.cs
- TextElement.cs
- GridViewCancelEditEventArgs.cs
- ResizeGrip.cs
- ListBox.cs
- ValidationResults.cs
- LinearGradientBrush.cs
- ComponentFactoryHelpers.cs
- ResolveResponseInfo.cs
- VScrollProperties.cs
- MobileErrorInfo.cs
- HtmlToClrEventProxy.cs
- versioninfo.cs
- Matrix3D.cs
- UniformGrid.cs
- SqlDataSourceView.cs
- SafeLibraryHandle.cs
- LogicalCallContext.cs
- NativeMethods.cs
- JsonXmlDataContract.cs
- ProxyGenerationError.cs
- RoutedPropertyChangedEventArgs.cs
- HtmlEmptyTagControlBuilder.cs
- ContextMenu.cs
- CallContext.cs
- ToolStripSplitStackLayout.cs
- Convert.cs
- ProfilePropertyMetadata.cs
- TableCell.cs
- KoreanCalendar.cs
- DataGridViewLinkCell.cs
- InteropTrackingRecord.cs
- AccessViolationException.cs
- CodeNamespaceImport.cs
- SafeNativeMethods.cs
- EventDriven.cs
- TypedDataSourceCodeGenerator.cs
- PrintControllerWithStatusDialog.cs
- SchemaReference.cs
- DataTableClearEvent.cs
- GridViewRow.cs
- PageSetupDialog.cs
- SchemaCollectionPreprocessor.cs
- dbenumerator.cs
- MouseWheelEventArgs.cs
- ContextQuery.cs
- ExpressionVisitorHelpers.cs
- RootBrowserWindow.cs
- SecurityCookieModeValidator.cs
- DataListCommandEventArgs.cs
- HttpConfigurationSystem.cs
- Socket.cs
- PngBitmapDecoder.cs
- SelectedDatesCollection.cs
- SettingsAttributes.cs
- CreateParams.cs
- GeneralTransform.cs
- AuthenticationConfig.cs
- FontStyle.cs
- ByteStream.cs
- FontCacheUtil.cs
- DragDropHelper.cs
- PointUtil.cs
- TableHeaderCell.cs
- ConfigViewGenerator.cs
- ApplicationId.cs
- UnsafeNativeMethods.cs
- TimerEventSubscription.cs
- SByte.cs
- TypeExtensions.cs
- GZipStream.cs
- ImageCodecInfo.cs
- Menu.cs
- BaseTreeIterator.cs
- DrawingContext.cs
- DataGridViewMethods.cs
- SynchronizationContext.cs
- Win32PrintDialog.cs
- Point.cs
- HostDesigntimeLicenseContext.cs
- ProxyWebPart.cs
- GetIndexBinder.cs
- DataGridViewAdvancedBorderStyle.cs