Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / VirtualPathUtility.cs / 3 / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MenuCommands.cs
- WinInetCache.cs
- Vars.cs
- ConfigurationLocation.cs
- ObjectTypeMapping.cs
- Int32CollectionValueSerializer.cs
- SystemException.cs
- SaveFileDialogDesigner.cs
- ISFClipboardData.cs
- XPathParser.cs
- DataFieldEditor.cs
- ChildTable.cs
- DashStyles.cs
- StringBuilder.cs
- WSTrustFeb2005.cs
- DelegateArgumentReference.cs
- LinkLabelLinkClickedEvent.cs
- IEnumerable.cs
- WebPartCollection.cs
- NotifyInputEventArgs.cs
- ContractBase.cs
- NetNamedPipeSecurity.cs
- CheckableControlBaseAdapter.cs
- ToolStripMenuItem.cs
- AdjustableArrowCap.cs
- ContentOperations.cs
- XPathDocument.cs
- TextWriterEngine.cs
- PerspectiveCamera.cs
- GridViewPageEventArgs.cs
- UniqueSet.cs
- MimeParameterWriter.cs
- AggregateNode.cs
- FrameworkContentElementAutomationPeer.cs
- PanelStyle.cs
- IntegerCollectionEditor.cs
- AttachedAnnotationChangedEventArgs.cs
- RuntimeHelpers.cs
- Matrix3D.cs
- UnsafeNativeMethods.cs
- SupportsEventValidationAttribute.cs
- And.cs
- PathGradientBrush.cs
- XmlSchemaExternal.cs
- SplitterPanel.cs
- ZipIOModeEnforcingStream.cs
- Window.cs
- ScopedKnownTypes.cs
- QilChoice.cs
- ParagraphVisual.cs
- printdlgexmarshaler.cs
- ThreadExceptionEvent.cs
- VisualStyleTypesAndProperties.cs
- UtilityExtension.cs
- SchemaManager.cs
- SHA384.cs
- ScriptReferenceBase.cs
- CachedBitmap.cs
- HttpCapabilitiesSectionHandler.cs
- WebPartCloseVerb.cs
- CodeTypeReferenceCollection.cs
- XmlEnumAttribute.cs
- TCEAdapterGenerator.cs
- ApplicationHost.cs
- QilVisitor.cs
- EventLogPermission.cs
- PathData.cs
- TextWriterTraceListener.cs
- Scripts.cs
- ChannelServices.cs
- StoreAnnotationsMap.cs
- PropertyState.cs
- UInt32.cs
- OpenFileDialog.cs
- Content.cs
- ProfileGroupSettings.cs
- OleDbCommand.cs
- BulletedListEventArgs.cs
- Int64AnimationUsingKeyFrames.cs
- XmlSchemaGroupRef.cs
- Viewport3DAutomationPeer.cs
- GeneralTransform3DGroup.cs
- ZipIOExtraFieldZip64Element.cs
- HashLookup.cs
- ConfigXmlAttribute.cs
- ReceiveDesigner.xaml.cs
- HttpCookie.cs
- CategoryNameCollection.cs
- SimpleRecyclingCache.cs
- BinaryObjectInfo.cs
- DockProviderWrapper.cs
- ByteStack.cs
- formatter.cs
- ResourceIDHelper.cs
- EncryptedData.cs
- NetNamedPipeBindingElement.cs
- X509Certificate2Collection.cs
- State.cs
- HttpFileCollection.cs
- LogSwitch.cs