Avatar billede koppelgaard Praktikant
08. oktober 2007 - 22:04 Der er 4 kommentarer og
1 løsning

File.CreateText efterfulgt af Filestream giver fejl

Hej alle
Nedenstående give fejl, når Filestreamen skal oprettes. Hvorfor ?

        private void Form1_Load(object sender, EventArgs e)
        {
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);
            if (!File.Exists(file))           
                File.CreateText(path+file); 
           
 
            StreamWriter w = new StreamWriter(path + file);
            w.WriteLine("Logon :" +              DateTime.Now.ToLongDateString());
                w.Close();
           
           
        }
Avatar billede bvli Praktikant
08. oktober 2007 - 22:09 #1
Fordi File.CreateText åbner filen for dig og returnerer en StreamWriter.

Så du skal bruge noget a'la:

using (StreamWriter w = File.CreateText(Path.Combine(path, file)){
  w.WriteLine("... yeada yeada ");
}
Avatar billede gammelhat Nybegynder
08. oktober 2007 - 22:09 #2
slutter path med en backslash?
Avatar billede koppelgaard Praktikant
09. oktober 2007 - 09:03 #3
Tak jeg var godt klar over at det var noget i den retning med en StreamWriter.
(file slutter med backslash)
saa blev det lille program :

private void Form1_Load(object sender, EventArgs e)
        {
           
            if (!File.Exists(Path.Combine(path, file)))
                {
                    using (StreamWriter w = File.CreateText(Path.Combine(path, file)))
                    {
                        w.WriteLine("Logon:" + DateTime.Now.ToShortDateString()+" "+ DateTime.Now.ToShortTimeString());
                        w.Close();
                    }                }
            else
            {
                using (StreamWriter w = File.AppendText(Path.Combine(path, file)))
                {
                    w.WriteLine("Logon: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                    w.Close();
                }
            }
        }
       

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            using (StreamWriter w = File.AppendText(Path.Combine(path, file)))
            {
                w.WriteLine("Logoff: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                w.Close();
            }
        }
    }
}

sender du et svar bvli ?

NB: er der en kortere måde at skrive DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() på?

Michael
Avatar billede bvli Praktikant
09. oktober 2007 - 11:48 #4
Svar..

Prøv i øvrigt at kigge på DateTime.ToString(string format). Du kan så bruge:

w.WriteLine(DateTime.Now.ToString("g")) - eller noget lignende..

/B :)
Avatar billede koppelgaard Praktikant
10. oktober 2007 - 08:44 #5
OK tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester