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
- MetadataFile.cs
- GeneralTransform.cs
- TextDpi.cs
- DetailsViewUpdateEventArgs.cs
- XmlObjectSerializerReadContextComplex.cs
- TimeSpanConverter.cs
- Point3DCollectionValueSerializer.cs
- CodeMethodInvokeExpression.cs
- Command.cs
- EdgeModeValidation.cs
- SqlTopReducer.cs
- RuleSettingsCollection.cs
- GenerateHelper.cs
- CssStyleCollection.cs
- CodeGeneratorOptions.cs
- Token.cs
- TreeViewItem.cs
- JsonQNameDataContract.cs
- CodeArgumentReferenceExpression.cs
- RtfControls.cs
- SvcMapFile.cs
- UnorderedHashRepartitionStream.cs
- ListSortDescriptionCollection.cs
- PolyBezierSegmentFigureLogic.cs
- mediaeventargs.cs
- RuleSettings.cs
- SimpleType.cs
- WindowsUpDown.cs
- PersistenceException.cs
- XmlSchemaRedefine.cs
- CompressedStack.cs
- DataViewListener.cs
- ScanQueryOperator.cs
- Int64Converter.cs
- ItemContainerPattern.cs
- ObjectResult.cs
- GenericIdentity.cs
- MeshGeometry3D.cs
- TextMetrics.cs
- RemoteCryptoRsaServiceProvider.cs
- Ref.cs
- TextEditorDragDrop.cs
- CompatibleIComparer.cs
- AmbientValueAttribute.cs
- Calendar.cs
- SqlTransaction.cs
- ButtonFlatAdapter.cs
- UiaCoreApi.cs
- OperationFormatStyle.cs
- SqlInfoMessageEvent.cs
- Decorator.cs
- TextCompositionEventArgs.cs
- ProgressBarHighlightConverter.cs
- Convert.cs
- InkCollectionBehavior.cs
- Header.cs
- TdsParserStaticMethods.cs
- DataServiceQueryProvider.cs
- MergeEnumerator.cs
- TreeBuilder.cs
- TemplatedAdorner.cs
- ParseChildrenAsPropertiesAttribute.cs
- _AutoWebProxyScriptHelper.cs
- HttpResponseBase.cs
- RightsManagementUser.cs
- Convert.cs
- DynamicValueConverter.cs
- MailWebEventProvider.cs
- TableLayoutSettingsTypeConverter.cs
- SelectionHighlightInfo.cs
- DiscreteKeyFrames.cs
- ChangeBlockUndoRecord.cs
- PointCollectionValueSerializer.cs
- SoapMessage.cs
- ListViewSortEventArgs.cs
- MethodExpression.cs
- LocatorPart.cs
- DefinitionBase.cs
- DocumentGridPage.cs
- TraceListeners.cs
- CustomAttributeFormatException.cs
- CodeTypeDeclaration.cs
- SplitterCancelEvent.cs
- _emptywebproxy.cs
- SerializerWriterEventHandlers.cs
- SamlSubject.cs
- RelationshipConstraintValidator.cs
- Random.cs
- XsltLibrary.cs
- ScriptModule.cs
- ValueTypeFixupInfo.cs
- InternalResources.cs
- ColorConvertedBitmapExtension.cs
- PerfCounters.cs
- SystemWebExtensionsSectionGroup.cs
- TextWriterTraceListener.cs
- BezierSegment.cs
- EncoderReplacementFallback.cs
- ThousandthOfEmRealDoubles.cs
- RootProfilePropertySettingsCollection.cs