Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从目录中读取文件,然后读取同一文件c的特定行#_.net - Fatal编程技术网

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

.net 从目录中读取文件,然后读取同一文件c的特定行#,.net,.net,我的问题是,我正在读取一个目录,然后我按名称筛选文件,但在这个目录中还有其他具有不同名称的文件,我试图做的是输入具有不同名称的文件并读取第6行,如果此行与具有相同名称的其他文件的名称匹配,将此文件保存到和数组中,以便以后处理 提前感谢。试试这个: String dir = @"C:\Temp"; String pattern = "*.txt"; var foundFiles = new List<String>(); foreach (String filePath in Dir

我的问题是,我正在读取一个目录,然后我按名称筛选文件,但在这个目录中还有其他具有不同名称的文件,我试图做的是输入具有不同名称的文件并读取第6行,如果此行与具有相同名称的其他文件的名称匹配,将此文件保存到和数组中,以便以后处理

提前感谢。

试试这个:

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);
    }
}
String dir=@“C:\Temp”;
字符串模式=“*.txt”;
var foundFiles=新列表();
foreach(目录中的字符串文件路径。枚举文件(目录,模式))
{
foreach(Directory.EnumerateFiles(dir,pattern)中的字符串filePath2)
{
if(filePath!=filePath2&&
File.ReadLines(filePath2.ElementAtOrDefault(5)=Path.GetFileName(filePath))
foundFiles.Add(文件路径);
}
}

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

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

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);
}

被否决了。这与其说是一个编程问题,不如说是一个为您编写程序的请求@Tim很乐意回答。嗨,我是c语言编程新手,你能解释一下你在做什么吗,谢谢你的帮助。你好,你应该看看
System.IO
命名空间中的类。例如,我用它来获取目录中的文件列表
Enumerable.ElementAtOrDefault
返回(此处)第6行,如果没有那么多行,则返回
null
。结果是一个类似于数组的
列表。也许您想存储
文件路径2
(或两者都存储)。如果你只想与文件名比较(没有
.txt
f.e.),你可以使用
Path.GetFileNameWithoutExtension(Path)
。好的,蒂姆,实际上我正在将这些文件存储到一个列表框中,我会尝试一下,谢谢你的帮助。