[C#] Schreiben in Datei fehlgeschlagen

Hallo,

wenn ich mitt der IO Namespace in eine Datei schreiben will, kommt die fehlermeldung im Anhang. Mit dem StreamWriter habe ich es auch schon versucht, gleiches Ergebnis.
Code:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

namespace Fenster{
    public class SteuerelementeForm : Form 
    {
        public string username;
        public string pfad;
        
        public SteuerelementeForm(){
            Name = "NotenForm";
            Text = "Notenplaner";
            Font = new Font("Courier New", 10F, (FontStyle.Bold), GraphicsUnit.Point, ((System.Byte)(0)));
            FormBorderStyle = FormBorderStyle.FixedDialog;
            Location = new Point(0,0);
            Size = new Size(400,200);
        }        
        public static void Main(){ //Start Main
            if(File.Exists("noten.ini"))
            {
                Application.Run(new SteuerelementeForm());
            }else{
                try{
                    string username;
                    StreamWriter sw = new StreamWriter(@"noten.ini");
                    File.Create("noten.ini", 1024);
                    Console.Write("Dein Name: ");
                    username = Console.ReadLine();
                    sw.Write(username + "\n" + username + ".npd");
                    File.Create(username + ".npd", 1024);
                    Application.Run(new SteuerelementeForm());
                }catch(Exception e){
                    MessageBox.Show(e.Message);
                }
            }
        } // End Main
    }
}
 
das so nicht funktionieren.

Code:
StreamWriter sw = new StreamWriter(@"noten.ini");

hier öffnest du einen stream zu der datei.

die zeile drunter willst du die datei erstellen

versuch mal file.create vorm erstellen des streamwrites aufzurufen.
 
Für was hast du überhaupt File.Create("noten.ini", 1024);?
Auch den Streamwriter verwendest du glaube ich nicht richtig, wenn ich mich da richtig erinnere. Da fehlt noch das sw.close();
Aber auch so ist irgendwie nicht so ganz verständlich, was dein Programm machen soll, muss ich sagen
 
Das ganze kann ja auch nicht funktionieren. Falls die Datei nicht existiert müsstest Du sowas zuerst machen:

Code:
FileStream fs = File.Create("filename.ext");
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("Eine neue Zeile");
sw.Close();
fs.Close();

Wenn Du einen Stream auf eine Datei erstellst dann kann natürlich nicht gleichzeitig ein neue Stream auf die Datei erstellt werden.

Was Du aber machst:
Code:
//File locked
StreamWriter sw = new StreamWriter(@"noten.ini");
//File schon durch sw gelocked
File.Create("noten.ini", 1024);

Deinen Code würde ich eh eher so schreiben:

Code:
try 
{
    if (!File.Exists("noten.ini"))
    {
        string username;
        FileStream fs = File.Create("noten.ini");
        StreamWriter sw = new StreamWriter(@"noten.ini");
        Console.Write("Dein Name: ");
        username = Console.ReadLine();
        sw.Write(username + "\n" + username + ".npd");
        sw.Close();
        fs.Close();
        
        fs = File.Create(username + ".npd", 1024);
        fs.Close();
    }
    
    Application.Run(new SteuerelementeForm());
} 
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
 
Zurück
Oben