为每个c#文件读取行
本文关键字:读取 文件 | 更新日期: 2023-09-27 17:49:17
如何逐行读取文件列表?我有一个包含许多文件的目录,我需要将所有文件保存在一个列表中,并逐行逐一处理它们。
到目前为止,我已经完成了以下操作:
//fetching all files from directory
DirectoryInfo d = new DirectoryInfo("path");
Dictionary<int, FileInfo> DatFiles = new Dictionary<int, FileInfo>();
int filecounter = 1;
foreach (var dat in d.EnumerateFiles())
{
DatFiles.Add(filecounter, dat);
filecounter++;
}
Console.WriteLine(filecounter);
foreach (var fileName in DatFiles)
{
foreach (var line in File.ReadLines(fileName.Value.OpenText().ToString()))
{
//run some methods
}
}
执行时,我得到一个异常,文件未找到。尽管列表中充满了文件名
EnumerateFiles()
返回FileInfo
对象的列表,File.ReadLines()
接受string
路径参数;你可能想在foreach
中使用File.ReadLines(fileName.Value.FullName)
,因为它给出了实际文件的路径;OpenText()
返回StreamReader
对象
这个较小的代码应该执行
var files = Directory.GetFiles("path");
foreach(var f in files)
{
using(StreamReader reader = new StreamReader(f))
{
var lines = reader.ReadToEnd().Split(new string[]{Environment.NewLine});
// Do here
}
}
当所有这些都失败时,请参阅文档
// Open the stream and read it back.
using (StreamReader sr = fi.OpenText())
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}