【问题标题】:Streamwriter file is not being created未创建 Streamwriter 文件
【发布时间】:2017-01-21 12:19:48
【问题描述】:

我正在使用下面的代码根据您在此处看到的逻辑将大文本文件拆分为较小的文件。我在 File.WriteAllText 行上收到一个错误,说 tempfile 不存在。流程是一个标题记录,后跟多个报表数据行,然后是报表行的一端,然后重新开始。有谁知道为什么我的临时文件不会在这里创建,我错过了什么?谢谢。

private static void SplitFile()
{
    StreamReader sr = new StreamReader($"{_processDir}{_processFile}");
    StreamWriter sw = null;
    string fileName = string.Empty;
    while (!sr.EndOfStream)
    {
        string line = sr.ReadLine();
        if (line.Split('\t')[0] == "FILEIDENTIFIER")
        {
            //line is a header record
            sw = new StreamWriter("{_processDir}tempfile.txt", false);
            sw.WriteLine(line);
        }
        else if (line.Contains("END OF\tREPORT"))
        {
            //line is end of report
            sw.Close();
            File.WriteAllText($"{_processDir}{fileName}.txt", File.ReadAllText($"{_processDir}tempfile.txt"));
        }
        else
        {
            //line is a report datarow
            fileName = line.Split('\t')[0];
            sw.WriteLine(line);
        }
    }
}

【问题讨论】:

    标签: c# streamreader streamwriter


    【解决方案1】:

    这段代码给你带来了问题:

     sw = new StreamWriter("{_processDir}tempfile.txt", false);
    

    在上面的代码中使用字符串插值:

     sw = new StreamWriter($"{_processDir}tempfile.txt", false);
    

    您可以检查流写入器写入数据的位置。

    【讨论】:

    • 是的 @LolCoder 아카 쉬 这就是问题所在。如果我的代码在那一行出现错误,这会容易得多。我不知道为什么它没有,或者它到达那里时到底发生了什么,但无论如何感谢你额外的一双眼睛帮助我继续前进。
    • 有时,它会发生......很高兴帮助你:)
    • @Gavin 它没有给你一个错误,因为{_processDir}tempfile.txt 是一个有效的文件名。
    • 是的@DourHighArch 现在很有意义,它在我的调试目录中创建了具有意外名称的文件。感谢您指出这一点。
    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 2010-11-12
    • 1970-01-01
    • 2015-06-05
    • 2015-10-27
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多