如何让我的C#代码检查目录中的每个文件
本文关键字:文件 检查 我的 代码 | 更新日期: 2023-09-27 18:04:50
可能重复:
如何读取特定文件夹中的所有文件
我有以下代码,我想出:
string[] lines = System.IO.File.ReadAllLines(@"C:'Notes'Variables1.txt");
foreach (string line in lines)
{
process(line);
}
string[] lines = System.IO.File.ReadAllLines(@"C:'Notes'test1.txt");
foreach (string line in lines)
{
process(line);
}
有没有一种简单可靠的方法可以修改代码,使其查找Notes目录中的所有.txt文件,然后依次读取每个文件。通过某种方式,我可以编写代码,而不必依次指定每个文件,如果文件为空,则不会崩溃。
string[] files = Directory.GetFiles(source, "*.txt");
foreach(string filename in files)
{
//go do something with the file
}
使用DirectoryInfo
类获取所有文件的列表。
Is有一个重载的EnumerateFiles
方法,仅用于此。
您可以使用directory获取任何给定目录中的文件集合。GetFiles((。然后像你已经在做的那样一个接一个地处理它们。
string[] files = Directory.GetFiles(@"C:'Notes", "*.txt", SearchOption.TopDirectoryOnly);
foreach(string file in files)
{
string[] lines = File.ReadAllLines(file);
foreach (string line in lines)
{
process(line);
}
}
系统中还有很多。IO命名空间。
使用System.IO.Directory.ReadFiles
例如:
string[] filePaths = Directory.GetFiles(@"c:'Notes'", "*.txt")
然后简单地遍历文件路径
您想要:
Directory.GetFiles(path, "*.txt");
这将返回一个名称数组,这样您就可以依次循环遍历每个文件:
foreach (string file in Directory.GetFiles(path, "*.txt"))
{
string[] lines = System.IO.File.ReadAllLines(file);
foreach (string line in lines)
{
process(line);
}
}
string[] files = Directory.GetFiles(directory);
foreach(string filename in files)
{
if (Path.GetExtension(filename) != ".txt")
continue;
string[] lines = System.IO.File.ReadAllLines(filename);
foreach (string line in lines)
{
process(line);
}
}