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