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
- PerformanceCounterPermission.cs
- EnumUnknown.cs
- XmlTextReaderImpl.cs
- TextTrailingCharacterEllipsis.cs
- RowSpanVector.cs
- HashCodeCombiner.cs
- CheckPair.cs
- EncoderReplacementFallback.cs
- TemplateColumn.cs
- FolderBrowserDialogDesigner.cs
- SystemThemeKey.cs
- Helper.cs
- ReadWriteObjectLock.cs
- Unit.cs
- ListChangedEventArgs.cs
- SQLByteStorage.cs
- HealthMonitoringSection.cs
- DefaultValueAttribute.cs
- DockingAttribute.cs
- ObjectManager.cs
- InvalidDataException.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- LambdaExpression.cs
- Propagator.Evaluator.cs
- MessageEventSubscriptionService.cs
- XmlSerializerSection.cs
- SystemBrushes.cs
- WebPartZoneBase.cs
- SafeNativeMethodsMilCoreApi.cs
- ComNativeDescriptor.cs
- TriState.cs
- PerformanceCounters.cs
- ResetableIterator.cs
- SqlInternalConnection.cs
- SecurityElement.cs
- LocalizedNameDescriptionPair.cs
- DbConnectionHelper.cs
- RecognitionResult.cs
- TableItemPatternIdentifiers.cs
- RuntimeResourceSet.cs
- StrongNamePublicKeyBlob.cs
- ICspAsymmetricAlgorithm.cs
- DataGridViewIntLinkedList.cs
- ToolStripContextMenu.cs
- ContentElement.cs
- DrawingContext.cs
- XmlNodeList.cs
- DeploymentSection.cs
- VirtualPathProvider.cs
- Stack.cs
- HtmlInputImage.cs
- CompilerGlobalScopeAttribute.cs
- VariableQuery.cs
- DefaultEvaluationContext.cs
- FontFamilyValueSerializer.cs
- ClientSettingsProvider.cs
- PropertyChangingEventArgs.cs
- WindowsListViewGroupSubsetLink.cs
- StatusBarPanelClickEvent.cs
- StyleXamlParser.cs
- ToolstripProfessionalRenderer.cs
- TagNameToTypeMapper.cs
- ExpandCollapseProviderWrapper.cs
- CodeBlockBuilder.cs
- Drawing.cs
- PointCollection.cs
- UmAlQuraCalendar.cs
- DataGridrowEditEndingEventArgs.cs
- FastEncoderWindow.cs
- MetadataException.cs
- Point3DCollectionValueSerializer.cs
- WMIInterop.cs
- EventWaitHandle.cs
- UniqueSet.cs
- XmlSchemaValidator.cs
- InputLanguageCollection.cs
- SettingsPropertyNotFoundException.cs
- CalendarDesigner.cs
- TableCellCollection.cs
- EncodingNLS.cs
- WebInvokeAttribute.cs
- dbdatarecord.cs
- TextEditorTables.cs
- AndCondition.cs
- RangeBase.cs
- WindowHideOrCloseTracker.cs
- IntegerValidator.cs
- XmlSchemaDatatype.cs
- Converter.cs
- EllipseGeometry.cs
- glyphs.cs
- FormViewDeletedEventArgs.cs
- FixedSOMPageElement.cs
- HtmlElementEventArgs.cs
- JsonWriter.cs
- SimpleRecyclingCache.cs
- SqlInternalConnectionSmi.cs
- EntityModelSchemaGenerator.cs
- XmlComplianceUtil.cs
- ListSourceHelper.cs