在C#中截断CSV文件

时间:2010-12-02 18:20:31

标签: c# csv truncate

我有一个包含48行整数的CSV文件。我使用visual c#的openfiledialog功能允许用户选择此文件。然后我想让程序将该文件截断为24行。我可以使用截断功能轻松完成此操作吗?如果不是我怎么能这样做?以下是我到目前为止......

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace sts_converter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void select_Click(object sender, EventArgs e)
        {
            int size = -1;
            DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
            if (result == DialogResult.OK) // Test result.
            {
                string file = openFileDialog1.FileName;
                try
                {
                    string text = File.ReadAllText(file);
                    size = text.Length;
                }
                catch (IOException)
                {
                }
            }
            Console.WriteLine(size); // <-- Shows file size in debugging mode.
            Console.WriteLine(result); // <-- For debugging use only.
        }

    }
}

2 个答案:

答案 0 :(得分:5)

这可能很简单:

string file = openFileDialog1.FileName;
File.WriteAllLines(
    file, 
    File.ReadLines(file).Take(28).ToArray()
);

答案 1 :(得分:1)

  • 调用ReadAllLines以获取48个字符串的数组
  • 创建一个包含24个字符串的新数组
  • 使用Array.Copy复制所需的字符串
  • 调用WriteAllLines将新数组写入文件

(您也可以使用LINQ的Take方法)