-3

我的问题是我正在读取一个目录然后我按名称过滤文件,但在这个目录中还有其他名称不同的文件,我想要做的是输入这个不同名称的文件并读取第 6 行,如果此行与其他同名文件的名称匹配,则将此文件保存到数组中以供以后处理。

提前致谢。

4

2 回答 2

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);
}
于 2012-09-14T19:01:28.233 回答
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 编写,但无论如何它可能会有所帮助。

于 2012-09-14T17:12:08.693 回答