我提出了以下代码:
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文件,然后依次读取每个文件。有些方法我可以编写代码,而不必依次指定每个文件,如果文件为空则不会崩溃。
答案 0 :(得分:4)
string[] files = Directory.GetFiles(source, "*.txt");
foreach(string filename in files)
{
//go do something with the file
}
答案 1 :(得分:2)
使用DirectoryInfo
类获取所有文件的列表。
是否有一个重载EnumerateFiles
方法,仅此而已。
答案 2 :(得分:0)
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);
}
}
答案 3 :(得分:0)
使用System.IO.Directory.ReadFiles
例如:
string[] filePaths = Directory.GetFiles(@"c:\Notes\", "*.txt")
然后简单地遍历文件路径
答案 4 :(得分:0)
您可以使用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);
}
}
System.IO命名空间中还有更多内容。
答案 5 :(得分:0)
你想:
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);
}
}