[c#] Modificare file di testo

martedì 16 giugno 2009 - 22.08

Samb1985 Profilo | Junior Member

Devo modificare un file di testo. In particolare devo inserire una stringa all'inizio del file di testo (sulla prima riga), facendo scorrere il testo già presente dalla seconda riga in poi. Come posso fare ? devo usare StreamReader ? qual'è un codice di esempio ?

aiedail92 Profilo | Expert

Ciao

Non c'è un modo diretto per inserire del testo all'inizio di un file, quello che devi fare è creare un file temporaneo dove scrivi il testo da inserire in cima al file, e poi ci ricopi il file da modificare, quindi sostituisci il file originale con quello temporaneo.

Ecco un esempio di codice:

// Il file da modificare e il file temporaneo string input = @"C:\input.txt"; string tempf = Path.GetTempFileName(); // Apre il file da modificare in lettura using (FileStream file = new FileStream(@"C:\input.txt", FileMode.Open, FileAccess.Read)) { // Apre il file temporaneo in scrittura using (StreamWriter tmpw = new StreamWriter(tempf)) { // Scrive sul file temporaneo la stringa da inserire tmpw.WriteLine("Stringa da inserire"); tmpw.Flush(); // Il buffer dove leggere i dati del primo file byte[] buffer = new byte[10240]; int read; // Legge tutti i dati fino alla fine del file while ((read = file.Read(buffer, 0, 10240)) > 0) { // E li ricopia sul file temporaneo tmpw.BaseStream.Write(buffer, 0, read); } } } // Sposta il file temporaneo sul file da modificare File.Replace(tempf, input, null);

Si potrebbe fare anche senza file temporaneo, lavorando direttamente sul file da modificare, ma la faccenda si complicherebbe un pochino...

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5