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
- TypeGeneratedEventArgs.cs
- FilterFactory.cs
- HashCodeCombiner.cs
- EventHandlersStore.cs
- Blend.cs
- GridView.cs
- ComPlusInstanceContextInitializer.cs
- DefaultConfirmation.cs
- DecoderFallback.cs
- XmlAttributeCollection.cs
- ProgressBarHighlightConverter.cs
- Enlistment.cs
- FixedElement.cs
- ImmutablePropertyDescriptorGridEntry.cs
- CloseSequenceResponse.cs
- DataGridViewSelectedCellCollection.cs
- ListViewItem.cs
- ListItemsPage.cs
- PropVariant.cs
- EditingMode.cs
- ComponentResourceKey.cs
- LayoutTable.cs
- CommonDialog.cs
- InputScopeNameConverter.cs
- ResourceSetExpression.cs
- Splitter.cs
- DeviceContexts.cs
- Color.cs
- DataColumnCollection.cs
- OletxEnlistment.cs
- SchemaComplexType.cs
- securitycriticaldataClass.cs
- ValueType.cs
- BitStack.cs
- DependencyPropertyAttribute.cs
- VoiceChangeEventArgs.cs
- Exceptions.cs
- EntitySqlQueryBuilder.cs
- LogicalExpr.cs
- ProjectionCamera.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- GenericAuthenticationEventArgs.cs
- TextTreeText.cs
- InkPresenter.cs
- BooleanToVisibilityConverter.cs
- XmlConvert.cs
- TimeSpanMinutesConverter.cs
- PartitionerStatic.cs
- EventProviderWriter.cs
- DomainConstraint.cs
- DataGridViewRowPostPaintEventArgs.cs
- EntityDataSourceQueryBuilder.cs
- Monitor.cs
- BinaryFormatter.cs
- CryptoProvider.cs
- GridItem.cs
- CommunicationObjectFaultedException.cs
- XhtmlBasicObjectListAdapter.cs
- ConfigXmlSignificantWhitespace.cs
- CodeSubDirectory.cs
- PrintPreviewGraphics.cs
- CodeSnippetCompileUnit.cs
- CodePageEncoding.cs
- OleDbPermission.cs
- UInt16Converter.cs
- AnchoredBlock.cs
- AttachedPropertyBrowsableAttribute.cs
- SystemFonts.cs
- Stopwatch.cs
- elementinformation.cs
- XPathNodeInfoAtom.cs
- XXXInfos.cs
- TextElementCollection.cs
- DoubleCollectionConverter.cs
- Message.cs
- ValidationRule.cs
- InputScopeConverter.cs
- HtmlTextArea.cs
- ReachBasicContext.cs
- DetailsViewActionList.cs
- GridViewCommandEventArgs.cs
- FrameAutomationPeer.cs
- KeyPullup.cs
- OutOfMemoryException.cs
- elementinformation.cs
- DynamicMethod.cs
- XmlSchemas.cs
- DataGridViewCellStateChangedEventArgs.cs
- TakeOrSkipWhileQueryOperator.cs
- TextEmbeddedObject.cs
- SourceFileBuildProvider.cs
- TrackPointCollection.cs
- BackgroundFormatInfo.cs
- ListComponentEditor.cs
- SmtpNetworkElement.cs
- ToolStripRendererSwitcher.cs
- ReturnType.cs
- ObjectAnimationBase.cs
- Control.cs
- DataGridParentRows.cs