Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Discovery / DynamicPhysicalDiscoSearcher.cs / 1305376 / DynamicPhysicalDiscoSearcher.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Discovery { using System; using System.IO; using System.Collections; using System.Web; using System.Web.Caching; using System.Diagnostics; using System.Text; using System.DirectoryServices; using System.Web.Services.Configuration; using System.ComponentModel; ////// /// Does a recursive search of virtual subdirectories to find stuff to /// make a disco file from. *.disco files (or whatever the PrimarySearchPattern is) are /// treated as end-points - recursion stops where they are found. /// internal class DynamicPhysicalDiscoSearcher : DynamicDiscoSearcher { private string startDir; internal DynamicPhysicalDiscoSearcher(string searchDir, string[] excludedUrls, string startUrl) : base(excludedUrls) { startDir = searchDir; origUrl = startUrl; } // ------------------------------------------------------------------------------- internal override void Search(string fileToSkipAtBegin) { SearchInit(fileToSkipAtBegin); ScanDirectory( startDir ); } // ------------------------------------------------------------------------------- // Look in iven directory for subdirectories, feasable for further searching. protected override void SearchSubDirectories(string localDir) { DirectoryInfo dir = new DirectoryInfo(localDir); if (!dir.Exists) return; DirectoryInfo[] subDirs = dir.GetDirectories(); foreach (DirectoryInfo subDir in subDirs) { if (subDir.Name == "." || subDir.Name == ".." ) { continue; } ScanDirectory( localDir + '\\' + subDir.Name ); } } // -------------------------------------------------------------------------------- protected override DirectoryInfo GetPhysicalDir(string dir ) { if ( !Directory.Exists(dir) ) return null; DirectoryInfo directory = new DirectoryInfo(dir); if ( !directory.Exists ) return null; if( 0 != (directory.Attributes & (FileAttributes.Hidden | FileAttributes.System | FileAttributes.Temporary))) { return null; } return directory; } // ------------------------------------------------------------------------------- // Makes result URL found file path from diectory name and short file name. protected override string MakeResultPath(string dirName, string fileName) { string res = origUrl + dirName.Substring(startDir.Length, dirName.Length - startDir.Length).Replace('\\','/') + '/' + fileName; return res; } // -------------------------------------------------------------------------------- // Makes exclusion path absolute for quick comparision on search. protected override string MakeAbsExcludedPath(string pathRelativ) { return startDir + '\\' + pathRelativ.Replace('/', '\\' ); } // -------------------------------------------------------------------------------- protected override bool IsVirtualSearch { get { return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataStorage.cs
- DesignerActionPropertyItem.cs
- SplitterEvent.cs
- ReflectTypeDescriptionProvider.cs
- EventToken.cs
- RelatedImageListAttribute.cs
- DataListGeneralPage.cs
- SynthesizerStateChangedEventArgs.cs
- NativeCppClassAttribute.cs
- GenericFlowSwitchHelper.cs
- TableRow.cs
- ValueTypeFixupInfo.cs
- PrintPreviewGraphics.cs
- CalendarDay.cs
- ToolStripRenderEventArgs.cs
- SecurityUtils.cs
- InputLanguage.cs
- ExportOptions.cs
- Site.cs
- AuthenticatedStream.cs
- ListViewDeleteEventArgs.cs
- ContentElementAutomationPeer.cs
- CultureSpecificStringDictionary.cs
- AddInActivator.cs
- TableCellCollection.cs
- UICuesEvent.cs
- PriorityItem.cs
- GlobalizationSection.cs
- MenuCommand.cs
- ReadContentAsBinaryHelper.cs
- ClientTargetSection.cs
- HtmlInputSubmit.cs
- AdornerDecorator.cs
- ComPlusServiceLoader.cs
- CompiledIdentityConstraint.cs
- HandlerFactoryWrapper.cs
- VisualTreeUtils.cs
- MultiAsyncResult.cs
- DataRecordInternal.cs
- TypeContext.cs
- XmlAtomicValue.cs
- DockPanel.cs
- FileUpload.cs
- TextEditorCharacters.cs
- GcSettings.cs
- AudienceUriMode.cs
- QueueProcessor.cs
- DataObjectFieldAttribute.cs
- DataServiceHost.cs
- WebPartDescription.cs
- XmlSchemaAny.cs
- TraceSection.cs
- UniqueIdentifierService.cs
- PropertyTab.cs
- X509CertificateCollection.cs
- CorePropertiesFilter.cs
- DomainUpDown.cs
- PopupEventArgs.cs
- DataBoundControlHelper.cs
- HttpRequestCacheValidator.cs
- OperationInfoBase.cs
- PenLineJoinValidation.cs
- XmlDictionaryReader.cs
- FtpCachePolicyElement.cs
- mediaeventargs.cs
- CodeDOMProvider.cs
- BufferedStream.cs
- WebPartMovingEventArgs.cs
- ServiceMetadataExtension.cs
- CompilerResults.cs
- TheQuery.cs
- RawTextInputReport.cs
- SqlReferenceCollection.cs
- MessageVersionConverter.cs
- SecurityDocument.cs
- EntityViewGenerationConstants.cs
- Pair.cs
- BaseCollection.cs
- XmlAttributeOverrides.cs
- DataControlImageButton.cs
- StyleCollectionEditor.cs
- OledbConnectionStringbuilder.cs
- SamlAuthorizationDecisionClaimResource.cs
- IndicShape.cs
- CalendarTable.cs
- MailAddressCollection.cs
- WorkflowMarkupSerializerMapping.cs
- OdbcHandle.cs
- ServerProtocol.cs
- CodeValidator.cs
- Trigger.cs
- XamlPoint3DCollectionSerializer.cs
- ZipIOExtraFieldPaddingElement.cs
- TextEditorMouse.cs
- SizeKeyFrameCollection.cs
- SoapHeaderAttribute.cs
- QueryableFilterUserControl.cs
- TextContainer.cs
- ManagedWndProcTracker.cs
- DynamicQueryStringParameter.cs