c#从许多文件中读取,并将其中的一部分写入新文件

c#从许多文件中读取,并将其中的一部分写入新文件,c#,C#,我试着一个接一个地读取许多文件,并将其中的一部分写入新文件。 我是c#的新手,谁能给我一些想法,怎么做 下面是代码,但以这种方式只记录一个主文件中的所有文件。我想从所有文件中获取一些关于子字符串的信息,并将这些信息写入主文件 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; name

我试着一个接一个地读取许多文件,并将其中的一部分写入新文件。 我是c#的新手,谁能给我一些想法,怎么做

下面是代码,但以这种方式只记录一个主文件中的所有文件。我想从所有文件中获取一些关于子字符串的信息,并将这些信息写入主文件

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
    {
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Name\Desktop\Files\";
            string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
            using (var output = File.Create(path + "output.txt"))
            {
                foreach (var file in files)
                {
                    using (var data = File.OpenRead(file))
                    {
                        data.CopyTo(output);
                    }
                }

            }
        }
    }
}

例如,如果要使用
子字符串
,可以这样做:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Name\Desktop\Files\";

            string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories);

            //Reads the first lines
            var firstLines = files.Select(f => File.ReadLines(f).First());

            //Cuts from the fifth character and then five characters long
            //Writes the result to the file output.txt
            File.WriteAllLines(path + "\\output.txt", firstLines.Select(l => l.Substring(5, 5)));
        }
    }
}

但是您也可以使用其他字符串操作方法,如
Replace

如果您想使用
子字符串,您可以这样做:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Name\Desktop\Files\";

            string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories);

            //Reads the first lines
            var firstLines = files.Select(f => File.ReadLines(f).First());

            //Cuts from the fifth character and then five characters long
            //Writes the result to the file output.txt
            File.WriteAllLines(path + "\\output.txt", firstLines.Select(l => l.Substring(5, 5)));
        }
    }
}

但您也可以使用其他字符串操作方法,如
Replace

查看System.IO.file请提供详细信息:哪些文件(二进制,文本),哪些部分(每个文件10字节?每个文本的顶行)?举例将非常有用。即使代码不完整,也不要忘记显示代码,引发异常等。请使用StreamReader和StreamWriter。您将不得不解析读取的文件,并且取决于文件的格式取决于解析是如何完成的。没有一种方法可以很好地处理所有不同类型的文件。欢迎使用堆栈溢出。目前这个问题相当模糊——我们不知道你已经尝试了什么,或者你被困在哪里。请阅读并编辑您的问题,使其更加具体。您尝试了什么?有很多东西可以读写目录和文件。自己动手,然后带着可能有问题的代码来到这里。查看System.IO.FilePlease,提供详细信息:哪些文件(二进制,文本),哪些部分(每个文件的10字节?每个文本的顶行)?举例将非常有用。即使代码不完整,也不要忘记显示代码,引发异常等。请使用StreamReader和StreamWriter。您将不得不解析读取的文件,并且取决于文件的格式取决于解析是如何完成的。没有一种方法可以很好地处理所有不同类型的文件。欢迎使用堆栈溢出。目前这个问题相当模糊——我们不知道你已经尝试了什么,或者你被困在哪里。请阅读并编辑您的问题,使其更加具体。您尝试了什么?有很多东西可以读写目录和文件。自己做一些事情,然后带着可能有问题的代码来到这里。