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
- AssemblyCacheEntry.cs
- WaitHandleCannotBeOpenedException.cs
- ISCIIEncoding.cs
- TriggerActionCollection.cs
- Material.cs
- MessageQueueAccessControlEntry.cs
- NavigatorInput.cs
- Bold.cs
- Int32AnimationBase.cs
- FunctionCommandText.cs
- ObjectCloneHelper.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- SplineKeyFrames.cs
- VisualProxy.cs
- regiisutil.cs
- SqlFormatter.cs
- CodeDomSerializationProvider.cs
- IndicShape.cs
- HtmlInputControl.cs
- CodeTypeParameter.cs
- ManagedWndProcTracker.cs
- TypographyProperties.cs
- XmlSerializerFactory.cs
- LinqMaximalSubtreeNominator.cs
- EntryPointNotFoundException.cs
- OptimisticConcurrencyException.cs
- XslTransform.cs
- ObjectSet.cs
- WindowsTreeView.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- LightweightCodeGenerator.cs
- MemberCollection.cs
- EditorAttributeInfo.cs
- FileIOPermission.cs
- FastPropertyAccessor.cs
- SaveFileDialog.cs
- IntegrationExceptionEventArgs.cs
- ArcSegment.cs
- CornerRadius.cs
- TypeConverterValueSerializer.cs
- CodeIterationStatement.cs
- ResourcePermissionBaseEntry.cs
- SplashScreen.cs
- SchemaType.cs
- PageBuildProvider.cs
- Span.cs
- PagePropertiesChangingEventArgs.cs
- ResXFileRef.cs
- GatewayDefinition.cs
- ChangeProcessor.cs
- GraphicsContainer.cs
- OleDbSchemaGuid.cs
- UnsafeNativeMethods.cs
- DataTableCollection.cs
- DictionaryEntry.cs
- TextServicesDisplayAttribute.cs
- OdbcParameter.cs
- TypeSystem.cs
- SQLCharsStorage.cs
- CodeParameterDeclarationExpressionCollection.cs
- RankException.cs
- MimeTypePropertyAttribute.cs
- MessageQueuePermissionEntry.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- RuleSetDialog.Designer.cs
- MissingManifestResourceException.cs
- DoubleLinkList.cs
- PolyLineSegment.cs
- GeneralTransform3DCollection.cs
- AttachedPropertyBrowsableAttribute.cs
- ToolStripGripRenderEventArgs.cs
- DataGridViewLayoutData.cs
- CustomValidator.cs
- SiteMapSection.cs
- CompositeScriptReference.cs
- String.cs
- KeyConverter.cs
- COM2FontConverter.cs
- TileModeValidation.cs
- GCHandleCookieTable.cs
- DataGridViewHitTestInfo.cs
- Module.cs
- DnsPermission.cs
- ContentPresenter.cs
- FixedFlowMap.cs
- ButtonField.cs
- SystemResourceKey.cs
- ObjectStateEntryDbDataRecord.cs
- CodeVariableReferenceExpression.cs
- WebServiceClientProxyGenerator.cs
- HwndTarget.cs
- RawStylusInputCustomDataList.cs
- CustomAttributeFormatException.cs
- PrivilegedConfigurationManager.cs
- ShapingWorkspace.cs
- ProcessHostConfigUtils.cs
- DNS.cs
- AddInContractAttribute.cs
- StructuralType.cs
- OleDbRowUpdatingEvent.cs