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
- WindowsHyperlink.cs
- IncrementalCompileAnalyzer.cs
- ConcurrentDictionary.cs
- WindowsUpDown.cs
- DefaultObjectMappingItemCollection.cs
- WorkflowRuntimeSection.cs
- FixedPageStructure.cs
- ToolStripManager.cs
- HierarchicalDataSourceControl.cs
- EqualityComparer.cs
- PasswordTextNavigator.cs
- DataGridViewLayoutData.cs
- ToolZone.cs
- HttpPostedFileBase.cs
- MD5.cs
- Perspective.cs
- ItemList.cs
- CodePropertyReferenceExpression.cs
- TreeNodeCollection.cs
- DbConnectionStringCommon.cs
- DesignerCommandSet.cs
- ProcessThreadDesigner.cs
- DiagnosticsConfigurationHandler.cs
- WebPartDisplayModeEventArgs.cs
- LinearKeyFrames.cs
- AlphabetConverter.cs
- Transform.cs
- DataColumnPropertyDescriptor.cs
- ClientProxyGenerator.cs
- InheritanceRules.cs
- BitmapVisualManager.cs
- GrammarBuilderWildcard.cs
- KeyInterop.cs
- DiscoveryUtility.cs
- MDIClient.cs
- SecurityUtils.cs
- MatrixAnimationUsingPath.cs
- OutputScope.cs
- BaseTypeViewSchema.cs
- ReturnEventArgs.cs
- BoolLiteral.cs
- ExpressionVisitorHelpers.cs
- WebMethodAttribute.cs
- FragmentQueryKB.cs
- PngBitmapEncoder.cs
- ExtensionDataReader.cs
- StreamedWorkflowDefinitionContext.cs
- _NtlmClient.cs
- Attribute.cs
- AttributeData.cs
- ClientOptions.cs
- CalendarAutoFormatDialog.cs
- DateTimeValueSerializerContext.cs
- SocketManager.cs
- DataViewSettingCollection.cs
- ToolStripCodeDomSerializer.cs
- PersonalizableTypeEntry.cs
- WindowsGraphics2.cs
- PointConverter.cs
- SafeBitVector32.cs
- DelegatingTypeDescriptionProvider.cs
- CalendarDataBindingHandler.cs
- AssemblyHelper.cs
- ChangeProcessor.cs
- TreeNodeSelectionProcessor.cs
- EventSinkActivity.cs
- BitmapPalette.cs
- TextEmbeddedObject.cs
- BindingSourceDesigner.cs
- MenuItem.cs
- OleDbConnectionInternal.cs
- SystemIcons.cs
- TreeViewItemAutomationPeer.cs
- WebPartConnectionsDisconnectVerb.cs
- SimpleApplicationHost.cs
- DocumentManager.cs
- NetworkInformationPermission.cs
- EventNotify.cs
- ParserContext.cs
- AnnotationResourceChangedEventArgs.cs
- ItemsChangedEventArgs.cs
- SecurityHelper.cs
- HtmlImage.cs
- XmlNullResolver.cs
- FormViewUpdatedEventArgs.cs
- FormatterConverter.cs
- PathBox.cs
- StorageMappingFragment.cs
- XmlEntityReference.cs
- UnmanagedMemoryStream.cs
- BasicExpressionVisitor.cs
- MemberInfoSerializationHolder.cs
- SqlUserDefinedTypeAttribute.cs
- XmlSerializationGeneratedCode.cs
- ChangeProcessor.cs
- AuthenticationConfig.cs
- MimeXmlImporter.cs
- XamlReaderConstants.cs
- CounterSampleCalculator.cs
- HttpWriter.cs