2016-09-13 79 views
4

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

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); 
     } 
    } 
} 

回答

6

这个代码就是得到你的问题:

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

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

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

您可以检查其中的StreamWriter已写入的数据。

+0

是@LolCoder아카쉬这是问题。如果我的代码给了我一个关于该行的错误,这将会容易得多。我不确定为什么它没有到达那里,或者到达那里时发生了什么,但是非常感谢你为我提供帮助的额外双眼。 – Gavin

+0

有时候,它发生了......很高兴帮助你:) –

+1

@Gavin它没有给你一个错误,因为'{_processDir} tempfile.txt'是一个有效的文件名。 –

相关问题