使用输出(StreamReader)行作为文件名(重命名)

时间:2013-12-22 22:45:31

标签: c# file replace rename streamreader

我正在尝试使用输出(“line”)作为新文件名(文件已经存在,只是重命名)。 例如“A,tampqer,N:.JPG” 但它看起来像: 例如line =“A \ tampqer \ tn:\ t \ t”

我收到错误:文件名的非法字符。

            int counter = 0;

        string line;

        // Read the file and display it line by line.


        StreamReader file = new StreamReader(@"C:\\german-czech.txt");
        while ((line = file.ReadLine()) != null)
        {
            //replace /t doesnt work
            for (int i = 0; i < line.Length; i++)
            {
                if (line[i] == '\t')
                {
                    line.Replace(line[i], ',');
                }
            }

            //Console.WriteLine(string.Format(line, @"\\t").ToString());
            Console.WriteLine( line);
            counter++;

            if (counter == 100)
                break;

        }
        file.Close();

猜猜“线”的内容是否仍然相同......任何人都可以帮助我解决这个小问题吗? 我还尝试了什么? line.Replace(System.Environment.NewLine,“,”); 的String.Empty ... “\ n” 最好的问候

1 个答案:

答案 0 :(得分:0)

你需要

line = line.Replace(line[i], ',');

它不会改变它。它返回 new 字符串。

您也不需要逐个横切字符串。 Replace将替换字符串中的每个匹配项。所以而不是你的:

    //replace /t doesnt work
    for (int i = 0; i < line.Length; i++)
    {
        if (line[i] == '\t')
        {
            line.Replace(line[i], ',');
        }
    }

刚才:

line = line.Replace("\t", ',');

(这是纠正你的代码。但我认为mrzli在他的评论中得到了真正的错误。)