In Datei ersetzen
-
Hi Leute,
Ich muss in einem Verzeichnis in allen Dateien einen bestimmten String durch einen anderen ersetzen. In diesem Verzeichnis müssen nicht nur Text-Dateien liegen, allerdings ist die Wahrscheinlichkeit extrem hoch, dass es eine Text-Datei ist, wenn der entsprechende String darin enthalten ist.
Wie würdet ihr vorgehen?
Mein Ansatz bisher:DirectoryInfo inputDirInfo = new DirectoryInfo(inputDir); FileInfo[] files = inputDirInfo.GetFiles("*.*", SearchOption.AllDirectories); foreach(FileInfo file in files) { FileStream fileStream = file.OpenRead(); byte[] buffer = new byte[fileStream.Length]; fileStream.Read(buffer, 0, (int)fileStream.Length); fileStreamRead.Close(); string content = ""; //buffer; content = content.Replace("string-to-be-replaced", "string-to-replace-with"); //buffer = content.ToByteArray(); FileStream fileStreamWrite = File.Create(outputDir+file.Name); fileStreamWrite.Write(buffer, 0, buffer.Length); fileStreamWrite.Close(); }
Weiter bin ich noch nicht gekommen, weil ich nicht weiss, wie ich ein byte-Array in einen string konvertieren kann
Falls ihr bessere Vorschläge habt, immer her damit
-
byte[] buffer = new byte[1]; string ug = buffer.ToString();
-
Rudelwudel schrieb:
byte[] buffer = new byte[1]; string ug = buffer.ToString();
@RudelWudel: Das will ich sehen, wie du das machst. Bei mir kommt nämlich System.Byte[] dabei raus.
Um ein byte array in einen String umzuwandelm benutze die Encoding-Klasse:
byte[] b = { 65, 66, 67 }; MessageBox.Show(Encoding.Default.GetString(b)); // Statt Encoding.Default kannts du auch Encodint.ASCII, Encoding.UTF8, Encoding.UTF7... benutzen
-
Danke!