我的问题是我正在读一个目录然后我按名称过滤文件,但是在这个目录中还有其他文件有不同的名称,我想要做的是输入这个文件用不同的名字和读取行数字6,如果此行与具有相同名称的其他文件的名称匹配,请将此文件保存到和数组中以便稍后处理它们。
提前致谢。
答案 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);
}