using System.IO; using System.Text; namespace CSVHelper { public class CSVPrinter { public static void Print(string dir, string fileName, string title, string line) { EnsureDirectoryExists(dir); string path = Path.Combine(dir, fileName); lock (path) { if (!File.Exists(path)) { using (var fs = File.Create(path)) using (var writer = new StreamWriter(fs, Encoding.UTF8)) { writer.WriteLine(title); writer.WriteLine(line); writer.Flush(); } } else { using (var fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) using (var writer = new StreamWriter(fs, Encoding.UTF8)) { writer.WriteLine(line); writer.Flush(); } } } } private static void EnsureDirectoryExists(string logDir) { if (!Directory.Exists(logDir)) { Directory.CreateDirectory(logDir); } } } }