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
- CodeEntryPointMethod.cs
- FixedSOMImage.cs
- ComplexPropertyEntry.cs
- MaterializeFromAtom.cs
- DataObject.cs
- ConsumerConnectionPoint.cs
- HtmlInputFile.cs
- TextEffect.cs
- RuleSettings.cs
- RemoteWebConfigurationHostStream.cs
- ColorConverter.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DispatchWrapper.cs
- RepeatInfo.cs
- ConfigurationSettings.cs
- TextEditorTables.cs
- ValueUnavailableException.cs
- SoapWriter.cs
- TextUtf8RawTextWriter.cs
- UpdateException.cs
- SimpleWorkerRequest.cs
- IndentedTextWriter.cs
- ServiceNameCollection.cs
- ConfigurationValidatorAttribute.cs
- PropertyDescriptorComparer.cs
- ChannelDispatcher.cs
- TextLine.cs
- HashUtility.cs
- CompositeControl.cs
- SapiInterop.cs
- RoleManagerModule.cs
- HtmlGenericControl.cs
- ContentPathSegment.cs
- ImageAutomationPeer.cs
- WizardForm.cs
- HtmlHistory.cs
- ProcessModelSection.cs
- CorrelationManager.cs
- BindToObject.cs
- ClientSponsor.cs
- StorageConditionPropertyMapping.cs
- ButtonColumn.cs
- ScrollItemPatternIdentifiers.cs
- SrgsElementFactory.cs
- BitmapSizeOptions.cs
- JoinTreeSlot.cs
- DirectionalLight.cs
- XamlWrappingReader.cs
- WpfPayload.cs
- TreeNodeCollection.cs
- HTMLTagNameToTypeMapper.cs
- SetStoryboardSpeedRatio.cs
- WebPartEditorCancelVerb.cs
- OdbcRowUpdatingEvent.cs
- InfoCardProofToken.cs
- DecimalAnimationUsingKeyFrames.cs
- OleDbEnumerator.cs
- BaseConfigurationRecord.cs
- SelectionEditor.cs
- SchemaMapping.cs
- ProfileGroupSettings.cs
- BuildProvider.cs
- WebPartTransformer.cs
- basenumberconverter.cs
- AppearanceEditorPart.cs
- CollectionBuilder.cs
- PrintDialog.cs
- WebPartCatalogCloseVerb.cs
- DesignerTextViewAdapter.cs
- ChtmlImageAdapter.cs
- ObjectStateEntryDbDataRecord.cs
- ProtocolElementCollection.cs
- TextSerializer.cs
- HashUtility.cs
- MatrixTransform3D.cs
- safex509handles.cs
- ContextMenuAutomationPeer.cs
- Helpers.cs
- NumberSubstitution.cs
- Vector.cs
- mediaclock.cs
- ScriptingScriptResourceHandlerSection.cs
- RegexWorker.cs
- TableRowCollection.cs
- ToolStripItemCollection.cs
- DatePickerDateValidationErrorEventArgs.cs
- KeyboardNavigation.cs
- Formatter.cs
- WebBrowserEvent.cs
- PrimitiveDataContract.cs
- PolyBezierSegmentFigureLogic.cs
- Model3DCollection.cs
- TempEnvironment.cs
- TraceLog.cs
- ServiceObjectContainer.cs
- MembershipPasswordException.cs
- _UncName.cs
- WhitespaceRuleReader.cs
- BooleanFacetDescriptionElement.cs
- FrameworkContentElement.cs