从目录中读取文件然后读取同一文件的特定行c#

时间:2012-09-14 17:02:31

标签: .net

我的问题是我正在读一个目录然后我按名称过滤文件,但是在这个目录中还有其他文件有不同的名称,我想要做的是输入这个文件用不同的名字和读取行数字6,如果此行与具有相同名称的其他文件的名称匹配,请将此文件保存到和数组中以便稍后处理它们。

提前致谢。

2 个答案:

答案 0 :(得分:0)

试试这个:

String dir = @"C:\Temp";
String pattern = "*.txt";
var foundFiles = new List<String>();

foreach (String filePath in Directory.EnumerateFiles(dir, pattern))
{
    foreach (String filePath2 in Directory.EnumerateFiles(dir, pattern))
    {
         if (filePath != filePath2 &&
             File.ReadLines(filePath2).ElementAtOrDefault(5) == Path.GetFileName(filePath))
             foundFiles.Add(filePath);
    }
}

注意:在没有IDE的情况下完全未经测试和编写,但无论如何它可能都有用。

答案 1 :(得分:0)

这应该是读取特定行的最简单方法。

string dir = "C:\\\\someFile.txt";
int LineNo = 1; //Pick a line
string ChosenLine = File.ReadAllLines(dir)[lineNo];

如果您想对文件夹中的每个文件执行此操作,请使用for或foreach。

void someMethod()
{
    string folderToScan = "C:\\\\someFolder\\";
    foreach(string dir in Directory.GetDirectories(folderToScan).ToList())
    {
        if(isExtention(dir,".txt"))
        {
            int LineNo = 1; //Pick a line
            string ChosenLine = File.ReadAllLines(dir)[lineNo];
        }
    }
}

bool isExtention(string f, string extention)
{
    return f != null && f.EndsWith(extention, StringComparison.Ordinal);
}