如何使用C#将Unix换行符更改为Windows换行符

时间:2014-10-12 06:32:54

标签: c# .net newline linefeed

我正在尝试编写一个unix2dos程序来改变文本文件的换行符。 问题是不是改变文本文件的内容,而是附加文件名。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace unix2dos
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] filePaths = Directory.GetFiles(@"c:\textfiles\", "*.txt");

            foreach (string file in filePaths)
            {
                string[] lines = File.ReadAllLines(file);
                foreach (string line in lines)
                {
                    string replace = line.Replace("\n", "\r\n");
                    File.WriteAllText(file, replace);
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

因为你正在写字符串并覆盖它。

试试这个:

string[] filePaths = Directory.GetFiles(@"c:\textfiles\", "*.txt");

foreach (string file in filePaths)
{
    string[] lines = File.ReadAllLines(file);
        List<string> list_of_string = new List<string>();
    foreach (string line in lines)
    {
        list_of_string.Add( line.Replace("\n", "\r\n"));
    }
    File.WriteAllLines(file, list_of_string);
}