📌  相关文章
📜  C# 程序在给定目录中搜索子目录

📅  最后修改于: 2022-05-13 01:54:44.196000             🧑  作者: Mango

C# 程序在给定目录中搜索子目录

C# 是一种通用的、面向对象的编程语言,发音为“C Sharp”。它在语法上与Java非常相似,并且对于具有 C、C++ 或Java知识的用户来说很容易。在本文中,我们将学习如何使用 C# 搜索给定目录中的子目录。所以对于这个任务,我们使用以下方法:

1. SearchOption :该方法用于告诉编译器是在当前目录中进行搜索,还是在当前目录及其所有子目录中进行搜索。

句法:

public enum SearchOption

它将需要两个字段:

  • AllDirectories:这用于在搜索操作中执行包含当前目录及其所有子目录的搜索。
  • TopDirectoryOnly:仅用于在主目录中搜索。

2. GetFiles:当我们需要获取目录或子目录中存在的文件的名称时,使用 GetFiles函数。它返回一个包含文件名的字符串数组。

句法:

public static string[] GetFiles (string path);

其中 path 是要搜索的目录。此字符串不区分大小写。这里的路径可以是相对路径或绝对路径。

方法:

  • 使用 SearchOption,我们将在子目录中找到所有文件。
  • 然后使用 GetFiles,我们将提取目录中存在的所有文件并将它们初始化为字符串数组。
  • 现在使用每个循环简单地遍历该字符串数组。
  • 使用条件运算符,我们将匹配文件名是否相等。如果找到文件,则返回“是”,否则返回“否”

示例 1:

C#
// C# code for search a subdirectory
// C: -> GFG ->
// Here only 1 file i.e Test.txt
using System;
using System.IO;
  
class GFG {
  
    static void Main()
    {
  
        // Here we search the file present in C drive
        // and GFG directory. Using SearchOption
        string[] list = Directory.GetFiles("C:\\GFG\\", "*.*",
                                           SearchOption.AllDirectories);
  
        string value = "GFG.txt"; // File to be searched
        int flag = 0;
        // Search the file names
        // Present in the A directory
        foreach(string file in list)
        {
            if (file == value) {
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            Console.WriteLine("yes");
        }
        else {
            Console.WriteLine("no");
        }
    }
}


C#
// C# code for search subdirectory C: -> GFG ->
using System;
using System.IO;
  
class GFG {
  
    static void Main()
    {
  
        // Here we search the file present in C drive
        // and GFG directory. Using SearchOption
        string[] list = Directory.GetFiles("C:\\GFG\\", "*.*",
                                           SearchOption.AllDirectories);
  
        string value = "Test.txt"; // File to be searched
        int flag = 0;
  
        // Search the file names
        // Present in the A directory
        foreach(string file in list)
        {
            if (file == value) {
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            Console.WriteLine("yes");
        }
        else {
            Console.WriteLine("no");
        }
    }
}


输出:

no

示例 2:

C#

// C# code for search subdirectory C: -> GFG ->
using System;
using System.IO;
  
class GFG {
  
    static void Main()
    {
  
        // Here we search the file present in C drive
        // and GFG directory. Using SearchOption
        string[] list = Directory.GetFiles("C:\\GFG\\", "*.*",
                                           SearchOption.AllDirectories);
  
        string value = "Test.txt"; // File to be searched
        int flag = 0;
  
        // Search the file names
        // Present in the A directory
        foreach(string file in list)
        {
            if (file == value) {
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            Console.WriteLine("yes");
        }
        else {
            Console.WriteLine("no");
        }
    }
}

输出:

yes