Code:
/ DotNET / DotNET / 8.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
- CheckBox.cs
- MimeMapping.cs
- ReachObjectContext.cs
- XPathQilFactory.cs
- InkCanvasSelectionAdorner.cs
- MappingItemCollection.cs
- EventListenerClientSide.cs
- EntityDataSourceContextCreatedEventArgs.cs
- DataRowCollection.cs
- PanelDesigner.cs
- FrameworkReadOnlyPropertyMetadata.cs
- Number.cs
- ZipFileInfoCollection.cs
- SqlDependencyUtils.cs
- TextRangeEditTables.cs
- Operators.cs
- AccessorTable.cs
- TreeBuilderBamlTranslator.cs
- BaseDataList.cs
- ControlBindingsCollection.cs
- DataRowComparer.cs
- DynamicDataRouteHandler.cs
- FontNameConverter.cs
- XmlDataSourceNodeDescriptor.cs
- WebPartActionVerb.cs
- FileVersionInfo.cs
- CancellationHandlerDesigner.cs
- MatrixTransform3D.cs
- LogRecordSequence.cs
- ReadWriteSpinLock.cs
- Compiler.cs
- BitmapDecoder.cs
- ChtmlTextWriter.cs
- PropertyItem.cs
- WorkflowWebHostingModule.cs
- SqlGenericUtil.cs
- LogicalExpr.cs
- RandomNumberGenerator.cs
- LifetimeServices.cs
- ListItemsCollectionEditor.cs
- TemplateGroupCollection.cs
- ObjectListCommand.cs
- FontUnitConverter.cs
- _Events.cs
- XPathNodeInfoAtom.cs
- PeerServiceMessageContracts.cs
- AdornerHitTestResult.cs
- MarkupCompilePass2.cs
- SolidColorBrush.cs
- HttpPostedFile.cs
- XmlNodeWriter.cs
- _ChunkParse.cs
- Visitor.cs
- CatalogZoneBase.cs
- CollectionBuilder.cs
- XmlUtf8RawTextWriter.cs
- StorageMappingFragment.cs
- AudioDeviceOut.cs
- ModifierKeysConverter.cs
- Scalars.cs
- WasAdminWrapper.cs
- CursorInteropHelper.cs
- FacetValues.cs
- ValueUtilsSmi.cs
- HtmlElementEventArgs.cs
- TextTreeRootTextBlock.cs
- RectangleConverter.cs
- Size.cs
- AttachedPropertyDescriptor.cs
- DataObjectPastingEventArgs.cs
- BasePropertyDescriptor.cs
- Decoder.cs
- ipaddressinformationcollection.cs
- EventDescriptorCollection.cs
- PropertyPath.cs
- WindowsAuthenticationEventArgs.cs
- TemplateManager.cs
- SmtpFailedRecipientException.cs
- MessageContractImporter.cs
- Permission.cs
- TimeoutValidationAttribute.cs
- SimpleBitVector32.cs
- OutOfProcStateClientManager.cs
- PageThemeCodeDomTreeGenerator.cs
- DateTimeOffsetStorage.cs
- FileInfo.cs
- ConfigXmlDocument.cs
- InstalledFontCollection.cs
- MenuBase.cs
- ResourceAssociationTypeEnd.cs
- StateChangeEvent.cs
- GradientStop.cs
- DBDataPermissionAttribute.cs
- ClientSettingsProvider.cs
- DocumentPageView.cs
- TypeSystem.cs
- PnrpPeerResolver.cs
- Queue.cs
- StickyNote.cs
- ToolStripDropDownClosingEventArgs.cs