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
- Context.cs
- BitmapFrame.cs
- ConstraintEnumerator.cs
- ResolveDuplex11AsyncResult.cs
- KeyFrames.cs
- EncoderFallback.cs
- BuildProviderInstallComponent.cs
- NumberFunctions.cs
- mediaeventshelper.cs
- ResourceDescriptionAttribute.cs
- Pkcs7Recipient.cs
- ForeignConstraint.cs
- ViewSimplifier.cs
- SubclassTypeValidator.cs
- SupportsPreviewControlAttribute.cs
- CallbackValidator.cs
- SqlGenerator.cs
- Material.cs
- FontFamily.cs
- Transform3DCollection.cs
- Mappings.cs
- ErrorEventArgs.cs
- RangeValidator.cs
- SecurityHelper.cs
- SQLBytesStorage.cs
- ServiceOperationInvoker.cs
- CultureTableRecord.cs
- SmiContextFactory.cs
- CalendarDay.cs
- TrustLevelCollection.cs
- StatusStrip.cs
- ResourceExpression.cs
- InstanceStoreQueryResult.cs
- XmlCustomFormatter.cs
- TreeView.cs
- ManualResetEvent.cs
- WebPartPersonalization.cs
- RedistVersionInfo.cs
- KeyBinding.cs
- WebPartZoneCollection.cs
- UntypedNullExpression.cs
- Wrapper.cs
- EventLogPermissionHolder.cs
- SectionInput.cs
- CodeRemoveEventStatement.cs
- ClientScriptManager.cs
- ExpressionEditor.cs
- ReachPrintTicketSerializer.cs
- TracedNativeMethods.cs
- Visual3DCollection.cs
- ScriptingJsonSerializationSection.cs
- FormViewInsertEventArgs.cs
- DbMetaDataFactory.cs
- SafeSecurityHandles.cs
- CfgArc.cs
- ISAPIWorkerRequest.cs
- Ray3DHitTestResult.cs
- EdmScalarPropertyAttribute.cs
- BoolExpression.cs
- DrawingContext.cs
- FlowDocumentReaderAutomationPeer.cs
- ComponentRenameEvent.cs
- SiteMapNodeCollection.cs
- BinaryFormatter.cs
- StickyNoteContentControl.cs
- DropSource.cs
- DropShadowBitmapEffect.cs
- LocalizableAttribute.cs
- ImmutableObjectAttribute.cs
- DbMetaDataFactory.cs
- ErrorHandler.cs
- NullReferenceException.cs
- NetTcpSection.cs
- Classification.cs
- safemediahandle.cs
- DataObjectEventArgs.cs
- ExtendedPropertyCollection.cs
- DataContractSerializer.cs
- DataGridTableCollection.cs
- DataGridViewRowPrePaintEventArgs.cs
- VsPropertyGrid.cs
- Base64Encoder.cs
- DataGridHyperlinkColumn.cs
- SourceInterpreter.cs
- Set.cs
- XmlArrayAttribute.cs
- Message.cs
- EntityEntry.cs
- PathFigureCollection.cs
- ConnectionStringsExpressionBuilder.cs
- ContextItem.cs
- GridItemProviderWrapper.cs
- DescendantOverDescendantQuery.cs
- TabRenderer.cs
- DataSet.cs
- ResourceReferenceExpression.cs
- EventlogProvider.cs
- AsyncSerializedWorker.cs
- SafeCryptHandles.cs
- ToolStripItemEventArgs.cs