我的问题是我正在读取一个目录然后我按名称过滤文件,但在这个目录中还有其他名称不同的文件,我想要做的是输入这个不同名称的文件并读取第 6 行,如果此行与其他同名文件的名称匹配,则将此文件保存到数组中以供以后处理。
提前致谢。
我的问题是我正在读取一个目录然后我按名称过滤文件,但在这个目录中还有其他名称不同的文件,我想要做的是输入这个不同名称的文件并读取第 6 行,如果此行与其他同名文件的名称匹配,则将此文件保存到数组中以供以后处理。
提前致谢。
这应该是阅读特定行的最简单方法。
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);
}
尝试这个:
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 编写,但无论如何它可能会有所帮助。