Każdy strumień powinien być zwalniany (using), inaczej to co znajduję się w StreamWriter nie jest zapisywane do FileStream.
Czyli tworzenie StreamWriter musi być w using( ... ):
using (Stream fileStream = new FileStream(nazwaPliku, FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fileStream, Encoding.UTF8))
{
//foreach (var item in linieZNaglowkiem)
// sw.WriteLine(item);
sw.WriteLine("teskst");
}
}
Warto sprawdzać czy klasa której używasz implementuję IDisposable wtedy musisz używać using.
Ewentualnie w C# 8.0 można używać usingów bez klamer, co trochę ułatwia:
public static void ZapiszDoPlikuCSV(string nazwaPliku, List<string> linieZNaglowkiem)
{
using Stream fileStream = new FileStream(nazwaPliku, FileMode.Create);
using StreamWriter sw = new StreamWriter(fileStream, Encoding.UTF8);
//foreach (var item in linieZNaglowkiem)
// sw.WriteLine(item);
sw.WriteLine("teskst");
}
Ewentualnie można jeszcze bardziej uprościć i skorzystać z File:
public static void ZapiszDoPlikuCSV(string nazwaPliku, List<string> linieZNaglowkiem)
{
File.WriteAllText(nazwaPliku, "teskst");
//File.WriteAllText(nazwaPliku, String.Join(";",linieZNaglowkiem);
}
Jeżeli chodzi o wyjątek to tutaj jest ok: