将多个文件读取到字符串上

本文关键字:字符串 读取 文件 | 更新日期: 2023-09-27 18:35:01

编辑:我忘了添加异常

我制作了这段代码,尝试仅将多个文件读取到一个字符串中(稍后我可以拆分它们,每个文件的末尾都有一个单词,就像分隔符一样(。

但是每次我尝试打开文件时,它都会给我一个异常:其他信息:对象引用未设置为对象的实例。

我尝试更改代码,但没有奏效。我是 C# 新手,找不到我做错了什么。任何帮助将不胜感激。PS:我正在使用一个单独的类来保存我的变量 - 因为我知道我将在代码的其他部分需要一些变量,所以我决定将它们全局化。

谢谢

代码:

private void openPPFToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog open = new OpenFileDialog())
            {
                // Filter for PPF
                open.Filter = "PPF Files|*.PPF";
                open.Multiselect = true;
                open.Title = "Select a PPF File";
                if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
//Obtaining list of filenames
                    vars.fullFileName = new List<String>(open.FileNames);
                    vars.filepath = open.FileName;
                    foreach (string fileName in vars.fullFileName)
                    {
                        LoadedFiles.Items.Add(fileName.Substring(fileName.LastIndexOf(@"'") + 1));  
                    }
                    for(int i=0; i< vars.fullFileName.Count; i++)
                    {
                        using (var sr = new StreamReader(vars.filepath))
                        {
                            vars.files[i] = sr.ReadToEnd(); //I supposed that each string position could hold an entire file.
                        }
                        string teste1 = vars.files[3].ToString(); //Just trying to show the contents
                        textBox1.Text = teste1;
                    }

                }
            }
        }

班级:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PPF_Converter_2._0
{
    class vars
    {
        public static List<String> fullFileName;
        public static string filepath;
        public static List<String> textdata;
        public static string sLine = "";
        public static string data;
        public static string[] files;

    }
}

将多个文件读取到字符串上

我认为您在文件读取方面有问题。

尝试这样。

  foreach (String file in openFileDialog1.FileNames) 
    {
      string fileContent = File.ReadAllText(file);
     //do your activity here
    }

您的数组"files"未初始化。你需要这样的东西:

Files = new string[3];

如果数组应该容纳 3 个元素。