4
ここでは、大きなテキストファイルを小さなファイルに分けて、ここで見ることができるロジックに基づいて、以下のコードを使用しています。私は、一時ファイルが存在しないことを示すFile.WriteAllText行にエラーが発生しています。フローは1つのヘッダーレコードで、その後に複数のレポートデータ行が続き、レポート行の1つの終わりが続き、再び開始されます。誰も私の一時ファイルがここで作成されない理由を知っていますか、私は何が欠けていますか?ありがとう。上記のコードでストリームライターファイルが作成されていません
sw = new StreamWriter("{_processDir}tempfile.txt", false);
使用文字列補間::
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);
}
}
}
はい@LolCoderアーカイが問題でした。これは私のコードが私にその行のエラーを与えていたほうがずっと簡単でした。私はなぜそれがなかったのか、それがそこにあったときに何が起こったのか分かりませんが、私が進むのを助けてくれた余分な目のためにどうもありがとう。 – Gavin
いつか、それは起こります...あなたを助けてくれてうれしいです:) –
@Gavin '{_processDir} tempfile.txt'が有効なファイル名であるため、エラーが表示されませんでした。 –