SearchOption Enum 
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Specifies whether to search the current directory, or the current directory and all subdirectories.
public enum class SearchOptionpublic enum SearchOption[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum SearchOptiontype SearchOption = [<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type SearchOption = Public Enum SearchOption- Inheritance
- Attributes
Fields
| Name | Value | Description | 
|---|---|---|
| TopDirectoryOnly | 0 | Includes only the current directory in a search operation. | 
| AllDirectories | 1 | Includes the current directory and all its subdirectories in a search operation. This option includes reparse points such as mounted drives and symbolic links in the search. | 
Examples
The following example lists all the directories and files that begin with the letter "c", as in "c:\". In this example, TopDirectoryOnly is used to specify that only the top-level directory should be searched.
using System;
using System.IO;
class App
{
    public static void Main()
    {
        // Specify the directory you want to manipulate.
        string path = @"c:\";
        string searchPattern = "c*";
        DirectoryInfo di = new DirectoryInfo(path);
        DirectoryInfo[] directories =
            di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly);
        FileInfo[] files =
            di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);
        Console.WriteLine(
            "Directories that begin with the letter \"c\" in {0}", path);
        foreach (DirectoryInfo dir in directories)
        {
            Console.WriteLine(
                "{0,-25} {1,25}", dir.FullName, dir.LastWriteTime);
        }
        Console.WriteLine();
        Console.WriteLine(
            "Files that begin with the letter \"c\" in {0}", path);
        foreach (FileInfo file in files)
        {
            Console.WriteLine(
                "{0,-25} {1,25}", file.Name, file.LastWriteTime);
        }
    } // Main()
} // App()
Imports System.IO
Class App
    Public Shared Sub Main()
        ' Specify the directory you want to manipulate.
        Dim path As String = "c:\\"
        Dim searchPattern As String = "c*"
        Dim di As DirectoryInfo = New DirectoryInfo(path)
        Dim directories() As DirectoryInfo = _
            di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)
        Dim files() As FileInfo = _
            di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly)
        Console.WriteLine( _
            "Directories that begin with the letter 'c' in {0}", path)
        Dim dir As DirectoryInfo
        For Each dir In directories
            Console.WriteLine( _
                "{0,-25} {1,25}", dir.FullName, dir.LastWriteTime)
        Next dir
        Console.WriteLine()
        Console.WriteLine( _
            "Files that begin with the letter 'c' in {0}", path)
        Dim file As FileInfo
        For Each file In files
            Console.WriteLine( _
                "{0,-25} {1,25}", file.Name, file.LastWriteTime)
        Next file
    End Sub
End Class
Remarks
If you choose AllDirectories in your search and the directory structure contains a link that creates a loop, the search operation enters an infinite loop.