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
- ConfigurationException.cs
- DefaultTextStore.cs
- WindowsRebar.cs
- MatrixConverter.cs
- ConfigXmlDocument.cs
- SafeEventLogReadHandle.cs
- TextWriter.cs
- ScriptServiceAttribute.cs
- VScrollProperties.cs
- ObjectReaderCompiler.cs
- DataSourceSelectArguments.cs
- ViewGenResults.cs
- XmlSortKeyAccumulator.cs
- Constraint.cs
- XmlBindingWorker.cs
- SqlCaseSimplifier.cs
- ResourceDictionaryCollection.cs
- CodeSnippetTypeMember.cs
- MemberDomainMap.cs
- InputBinder.cs
- FormViewUpdatedEventArgs.cs
- ValueTable.cs
- TableAdapterManagerGenerator.cs
- HtmlEmptyTagControlBuilder.cs
- SqlVisitor.cs
- WebPartTransformerAttribute.cs
- ToolboxItemFilterAttribute.cs
- FormDesigner.cs
- Attributes.cs
- Stacktrace.cs
- WebServiceClientProxyGenerator.cs
- ObjectStorage.cs
- AggregateNode.cs
- EpmContentDeSerializerBase.cs
- GroupBox.cs
- DecoderFallbackWithFailureFlag.cs
- ExitEventArgs.cs
- DependentTransaction.cs
- FileDataSourceCache.cs
- CallTemplateAction.cs
- CodeSnippetTypeMember.cs
- UnsafeCollabNativeMethods.cs
- SqlNamer.cs
- EventHandlingScope.cs
- Listbox.cs
- SchemaElementDecl.cs
- RadioButton.cs
- AutomationPeer.cs
- NativeMethodsOther.cs
- Update.cs
- TextElement.cs
- PlanCompiler.cs
- DeploymentSection.cs
- ParserOptions.cs
- ToolStripItemImageRenderEventArgs.cs
- BufferBuilder.cs
- TypeBuilderInstantiation.cs
- securestring.cs
- ConstantSlot.cs
- XmlWrappingReader.cs
- ResourceKey.cs
- securitycriticaldataformultiplegetandset.cs
- DelimitedListTraceListener.cs
- ServerValidateEventArgs.cs
- XamlHostingConfiguration.cs
- StyleCollection.cs
- BinaryObjectInfo.cs
- ErrorItem.cs
- Matrix.cs
- Style.cs
- DbProviderServices.cs
- LocationSectionRecord.cs
- ConfigUtil.cs
- SQLInt64Storage.cs
- SecurityContextCookieSerializer.cs
- XPathDocumentIterator.cs
- DescendantQuery.cs
- TextParaClient.cs
- ReadOnlyDataSourceView.cs
- WeakReferenceEnumerator.cs
- SecurityRuntime.cs
- smtppermission.cs
- DeviceContext.cs
- DocComment.cs
- WindowsRebar.cs
- PreservationFileWriter.cs
- ReservationNotFoundException.cs
- HashSet.cs
- PrintDialog.cs
- AudioBase.cs
- SessionPageStatePersister.cs
- CodeObjectCreateExpression.cs
- ValueTypeFixupInfo.cs
- SchemaDeclBase.cs
- ContractInferenceHelper.cs
- InheritanceRules.cs
- KeyEventArgs.cs
- WorkflowEnvironment.cs
- Msmq4PoisonHandler.cs
- ParallelLoopState.cs