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
- PixelShader.cs
- XMLSyntaxException.cs
- ButtonAutomationPeer.cs
- SystemFonts.cs
- CursorInteropHelper.cs
- InvokeWebServiceDesigner.cs
- VirtualStackFrame.cs
- NativeRightsManagementAPIsStructures.cs
- PtsCache.cs
- CodeDOMProvider.cs
- XmlIgnoreAttribute.cs
- FrameworkTextComposition.cs
- OleDbCommandBuilder.cs
- VisualCollection.cs
- ChineseLunisolarCalendar.cs
- SqlConnectionStringBuilder.cs
- ToolStripArrowRenderEventArgs.cs
- GregorianCalendar.cs
- ThousandthOfEmRealDoubles.cs
- ObjectComplexPropertyMapping.cs
- WebPartAuthorizationEventArgs.cs
- MaterialGroup.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- TdsParameterSetter.cs
- ProviderConnectionPoint.cs
- SoapHttpTransportImporter.cs
- FieldNameLookup.cs
- ProtocolsSection.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- ScrollItemProviderWrapper.cs
- ArglessEventHandlerProxy.cs
- FormattedTextSymbols.cs
- BaseValidator.cs
- BulletChrome.cs
- TextRunProperties.cs
- FramingDecoders.cs
- GenerateHelper.cs
- SqlUnionizer.cs
- ValidationService.cs
- CommandDevice.cs
- LocationSectionRecord.cs
- BindingNavigator.cs
- ComboBoxRenderer.cs
- ReachUIElementCollectionSerializer.cs
- ButtonBase.cs
- ApplicationTrust.cs
- EngineSiteSapi.cs
- QueryCacheManager.cs
- DataGridLinkButton.cs
- storepermission.cs
- webproxy.cs
- Geometry3D.cs
- DataTrigger.cs
- SqlBuffer.cs
- DataServiceQueryOfT.cs
- DetailsView.cs
- AnnotationDocumentPaginator.cs
- OleDbParameterCollection.cs
- ValueExpressions.cs
- RadialGradientBrush.cs
- MenuItemBindingCollection.cs
- RectValueSerializer.cs
- UTF8Encoding.cs
- TextBox.cs
- BrowsableAttribute.cs
- EditorZoneAutoFormat.cs
- OdbcConnectionString.cs
- ServerValidateEventArgs.cs
- COM2IProvidePropertyBuilderHandler.cs
- EnumMemberAttribute.cs
- ObjectToIdCache.cs
- MessageOperationFormatter.cs
- BindingsCollection.cs
- WebPartEventArgs.cs
- DllNotFoundException.cs
- TransactionProtocol.cs
- MaterialGroup.cs
- SQLGuid.cs
- HostedElements.cs
- TimeSpanParse.cs
- ItemAutomationPeer.cs
- StructureChangedEventArgs.cs
- __TransparentProxy.cs
- ConfigurationSection.cs
- TextPattern.cs
- ViewStateException.cs
- SiteMapHierarchicalDataSourceView.cs
- GPStream.cs
- RegexTypeEditor.cs
- RtfToXamlReader.cs
- ContentOperations.cs
- BuildResult.cs
- KeySpline.cs
- XamlTreeBuilderBamlRecordWriter.cs
- QueueProcessor.cs
- GeometryModel3D.cs
- DataControlFieldCollection.cs
- MarkupCompiler.cs
- _SecureChannel.cs
- XmlCustomFormatter.cs