将所有文本文件放在一个文件夹中,然后合并为1

时间:2018-12-16 08:11:31

标签: merge combobox listbox text-files path-combine

我正在尝试将所有文​​本文件合并为一个文件。 我遇到的问题是文件名基于以前在我的应用程序中捕获的数据。我不知道如何定义文本文件所在路径。我一直收到错误消息,但是文件路径正确。 我想念什么?

string filesread = System.AppDomain.CurrentDomain.BaseDirectory + @"\data\Customers\" + CustComboB.SelectedItem + @"\";
        Directory.GetFiles(filesread);
        using (var output = File.Create("allfiles.txt"))
        {
            foreach (var file in new[] { filesread })
            {
                using (var input = File.OpenRead(file))
                {
                    input.CopyTo(output);
                }
            }
        }
        System.Diagnostics.Process.Start("allfiles.txt");

我的错误:

System.IO.DirectoryNotFoundException

HResult = 0x80070003   Message =找不到路径'C:\ Users \ simeo \ source \ repos \ UpMarker \ UpMarker \ bin \ Debug \ data \ Customers \ 13Dec2018 \'的一部分。

我无法发布图片,但让我尝试在表单上提供更多详细信息。 我选择一个组合框项目,该项目是一个目录。然后我有一个列表框,显示目录中的文件。然后,我有一个按钮,可以执行合并文件的需求。谢谢

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。

string path = @"data\Customers\" + CustComboB.SelectedItem;
        string topath = @"data\Customers\";
        string files = "*.txt";
        string[] txtFiles;
        txtFiles = Directory.GetFiles(path, files);
        using (StreamWriter writer = new StreamWriter(topath + @"\allfiles.txt"))
        {
            for (int i = 0; i < txtFiles.Length; i++)
            {
                using (StreamReader reader = File.OpenText(txtFiles[i]))
                {
                    writer.Write(reader.ReadToEnd());

                }
            }
            System.Diagnostics.Process.Start(topath + @"\allfiles.txt");
        }