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
- CompilerParameters.cs
- ThemeDirectoryCompiler.cs
- BitmapEffectInput.cs
- SchemaObjectWriter.cs
- DataViewManagerListItemTypeDescriptor.cs
- KnownBoxes.cs
- WebPartVerb.cs
- SeverityFilter.cs
- FlowDocumentReader.cs
- SiteMapHierarchicalDataSourceView.cs
- ListBoxItem.cs
- SelectionPattern.cs
- HtmlContainerControl.cs
- Win32NamedPipes.cs
- IImplicitResourceProvider.cs
- Separator.cs
- LZCodec.cs
- ProcessThread.cs
- ServiceChannelManager.cs
- RuleSetBrowserDialog.cs
- PolicyAssertionCollection.cs
- DESCryptoServiceProvider.cs
- BitmapSizeOptions.cs
- cache.cs
- SystemUdpStatistics.cs
- XPathScanner.cs
- util.cs
- ReadOnlyMetadataCollection.cs
- Condition.cs
- RectangleGeometry.cs
- DayRenderEvent.cs
- XdrBuilder.cs
- ResourceAssociationSet.cs
- ValidationResult.cs
- StoreItemCollection.cs
- MembershipSection.cs
- BitmapEffectDrawing.cs
- ProcessModelSection.cs
- LoginName.cs
- ChannelEndpointElementCollection.cs
- Bold.cs
- CodeMemberField.cs
- SystemIcmpV4Statistics.cs
- ListCollectionView.cs
- BitArray.cs
- ListBase.cs
- PageThemeBuildProvider.cs
- StateMachineSubscription.cs
- EncoderParameters.cs
- DoubleCollectionConverter.cs
- PointValueSerializer.cs
- AsyncWaitHandle.cs
- AsymmetricSignatureFormatter.cs
- DrawingBrush.cs
- CommonEndpointBehaviorElement.cs
- Array.cs
- ColumnHeaderCollectionEditor.cs
- GlyphingCache.cs
- ValidationHelper.cs
- GPRECTF.cs
- ComContractElement.cs
- SymbolPair.cs
- ProviderException.cs
- Storyboard.cs
- GridView.cs
- __Error.cs
- EntityDesignerBuildProvider.cs
- ActivityDesigner.cs
- MultipleViewPattern.cs
- WebPartActionVerb.cs
- EntityDataSourceSelectingEventArgs.cs
- StreamResourceInfo.cs
- Transaction.cs
- Connection.cs
- BitStream.cs
- CodeTypeMemberCollection.cs
- SQLStringStorage.cs
- ClonableStack.cs
- CodeMethodInvokeExpression.cs
- ListCollectionView.cs
- InvokePatternIdentifiers.cs
- StringResourceManager.cs
- CellConstantDomain.cs
- DuplexChannel.cs
- CustomBinding.cs
- TimersDescriptionAttribute.cs
- GroupItem.cs
- ConsumerConnectionPoint.cs
- Int16AnimationBase.cs
- VerticalAlignConverter.cs
- ButtonChrome.cs
- ScrollItemPatternIdentifiers.cs
- InputLanguageProfileNotifySink.cs
- Scanner.cs
- WebSysDescriptionAttribute.cs
- SubtreeProcessor.cs
- CheckBox.cs
- DataGridParentRows.cs
- ToolStripSplitStackLayout.cs
- NativeMethods.cs