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
- X509Chain.cs
- DataIdProcessor.cs
- UniqueConstraint.cs
- DoubleLink.cs
- SetStateEventArgs.cs
- SafeIUnknown.cs
- TextChange.cs
- XslAst.cs
- RelationshipWrapper.cs
- WsdlInspector.cs
- ProcessThreadCollection.cs
- SafeHandles.cs
- ISAPIRuntime.cs
- UdpChannelFactory.cs
- DataGridViewRowsAddedEventArgs.cs
- Nodes.cs
- odbcmetadatafactory.cs
- NotFiniteNumberException.cs
- FontFamilyConverter.cs
- EventManager.cs
- ProfileServiceManager.cs
- QueryContinueDragEvent.cs
- TypeInitializationException.cs
- ContentPlaceHolder.cs
- webbrowsersite.cs
- WriteTimeStream.cs
- DataGridViewColumn.cs
- DesignerDataParameter.cs
- ValidationResult.cs
- Keyboard.cs
- JavaScriptSerializer.cs
- OneOfConst.cs
- TraceSection.cs
- ColorConvertedBitmapExtension.cs
- controlskin.cs
- ScriptIgnoreAttribute.cs
- InvokeMemberBinder.cs
- HierarchicalDataBoundControl.cs
- DataGridViewTextBoxColumn.cs
- CodeDelegateInvokeExpression.cs
- GlyphingCache.cs
- UseLicense.cs
- CTreeGenerator.cs
- MediaContext.cs
- SqlCacheDependency.cs
- PropertyContainer.cs
- RoleGroupCollectionEditor.cs
- RegexCapture.cs
- WasEndpointConfigContainer.cs
- ListBindingHelper.cs
- ColumnHeader.cs
- PresentationSource.cs
- AnchoredBlock.cs
- WebControl.cs
- PageCatalogPart.cs
- Baml2006SchemaContext.cs
- CalendarAutoFormatDialog.cs
- SqlDataSourceConfigureFilterForm.cs
- ListViewUpdateEventArgs.cs
- EntityDataSourceView.cs
- SystemWebExtensionsSectionGroup.cs
- CounterSample.cs
- ResXBuildProvider.cs
- DataQuery.cs
- NullExtension.cs
- DependencyPropertyChangedEventArgs.cs
- SamlNameIdentifierClaimResource.cs
- XPathAncestorQuery.cs
- DoubleUtil.cs
- IndividualDeviceConfig.cs
- SafeProcessHandle.cs
- HtmlEncodedRawTextWriter.cs
- WindowsUpDown.cs
- DataServiceStreamResponse.cs
- EditingCommands.cs
- FixedHyperLink.cs
- SystemTcpConnection.cs
- RawStylusInputCustomDataList.cs
- ClonableStack.cs
- ProfileManager.cs
- RootBuilder.cs
- WindowsGrip.cs
- TailCallAnalyzer.cs
- DataTableMappingCollection.cs
- recordstatescratchpad.cs
- XmlSchemaSimpleTypeUnion.cs
- DBConnectionString.cs
- DataListCommandEventArgs.cs
- KeyInstance.cs
- TypeGeneratedEventArgs.cs
- PathFigureCollection.cs
- ApplicationId.cs
- ToolStripItemClickedEventArgs.cs
- OleDbRowUpdatingEvent.cs
- UiaCoreApi.cs
- ReadOnlyCollectionBase.cs
- StringComparer.cs
- RawUIStateInputReport.cs
- DocumentOrderQuery.cs
- DecoderReplacementFallback.cs