Abra el archivo existente, anexe una sola línea

Quiero abrir un archivo de texto, agregarle una sola línea y luego cerrarlo.

Puede usar File.AppendAllText para eso:

 File.AppendAllText(@"c:\path\file.txt", "text content" + Environment.NewLine); 
 using (StreamWriter w = File.AppendText("myFile.txt")) { w.WriteLine("hello"); } 

¡Elige uno! Pero el primero es muy simple. El último tal vez util para la manipulación de archivos:

 //Method 1 (I like this) File.AppendAllLines( "FileAppendAllLines.txt", new string[] { "line1", "line2", "line3" }); //Method 2 File.AppendAllText( "FileAppendAllText.txt", "line1" + Environment.NewLine + "line2" + Environment.NewLine + "line3" + Environment.NewLine); //Method 3 using (StreamWriter stream = File.AppendText("FileAppendText.txt")) { stream.WriteLine("line1"); stream.WriteLine("line2"); stream.WriteLine("line3"); } //Method 4 using (StreamWriter stream = new StreamWriter("StreamWriter.txt", true)) { stream.WriteLine("line1"); stream.WriteLine("line2"); stream.WriteLine("line3"); } //Method 5 using (StreamWriter stream = new FileInfo("FileInfo.txt").AppendText()) { stream.WriteLine("line1"); stream.WriteLine("line2"); stream.WriteLine("line3"); } 

Es posible que desee verificar la clase TextWriter .

 //Open File TextWriter tw = new StreamWriter("file.txt"); //Write to file tw.WriteLine("test info"); //Close File tw.Close(); 

O puede usar File.AppendAllLines(string, IEnumerable)

 File.AppendAllLines(@"C:\Path\file.txt", new[] { "my text content" }); 

File.AppendText lo hará:

 using (StreamWriter w = File.AppendText("textFile.txt")) { w.WriteLine ("-------HURRAY----------"); w.Flush(); } 

//Nosotros podemos usar

publicWriter (ruta de cadena, bool append);

al abrir el archivo

StreamWriter SW = new StreamWriter (ruta, verdadero);

El primer parámetro es una cadena para mantener la ruta completa del archivo. El segundo parámetro es el Modo Agregar, que en este caso se convierte en una cadena verdadera Ruta = “C: \ Mi Carpeta \ Notas.txt”

Escribir en el archivo se puede hacer con

SW.Write (cadena)

o

SW..WriteLine (cadena)

SW.WriteLine (“Algún texto”);

SW.Flush ();

SW.Close ();

Código de muestra

 private void WriteAndAppend() { string Path = Application.StartupPath + "\\notes.txt"; FileInfo fi = new FileInfo(Path); StreamWriter SW; StreamReader SR; if (fi.Exists) { SR = new StreamReader(Path); string Line = ""; while (!SR.EndOfStream) // Till the last line { Line = SR.ReadLine(); } SR.Close(); int x = 0; if (Line.Trim().Length <= 0) { x = 0; } else { x = Convert.ToInt32(Line.Substring(0, Line.IndexOf('.'))); } x++; SW = new StreamWriter(Path, true); SW.WriteLine("-----"+string.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", DateTime.Now)); SW.WriteLine(x.ToString() + "." + textBox1.Text); } else { SW = new StreamWriter(Path); SW.WriteLine("-----" + string.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", DateTime.Now)); SW.WriteLine("1." + textBox1.Text); } SW.Flush(); SW.Close(); } 
 //display sample reg form in notepad.txt using (StreamWriter stream = new FileInfo("D:\\tt.txt").AppendText())//ur file location//.AppendText()) { stream.WriteLine("Name :" + textBox1.Text);//display textbox data in notepad stream.WriteLine("DOB : " + dateTimePicker1.Text);//display datepicker data in notepad stream.WriteLine("DEP:" + comboBox1.SelectedItem.ToString()); stream.WriteLine("EXM :" + listBox1.SelectedItem.ToString()); } 

La mejor manera técnica es probablemente esta aquí:

 private static async Task AppendLineToFile([NotNull] string path, string line) { if (string.IsNullOrWhiteSpace(path)) throw new ArgumentOutOfRangeException(nameof(path), path, "Was null or whitepsace."); if (!File.Exists(path)) throw new FileNotFoundException("File not found.", nameof(path)); using (var file = File.Open(path, FileMode.Append, FileAccess.Write)) using (var writer = new StreamWriter(file)) { await writer.WriteLineAsync(line); await writer.FlushAsync(); } }