2010-05-06 6 views
5

Ich habe eine Anwendung, die ich erstelle, die eine Konfigurationsdatei ändern muss.C# File.ReadAllLines bricht nicht auf Zeilenvorschübe

Mein Problem ist, dass ich nicht in der Lage bin, die Datei Zeile für Zeile zu lesen. Ich erhalte die gesamte Datei als eine einzige Zeichenfolge.

string ConfigTemplate = AEBuildsSPFolderName + "\\Template_BuildReleaseScript.Config"; 

string[] fileSourceLines = File.ReadAllLines(ConfigTemplate, Encoding.Default); 
//Returns the entire file contents into the first array element. 

using (StreamReader reader = new StreamReader(ConfigTemplate)) 
      { 
       string line; 
       while ((line = reader.ReadLine()) != null) 
//Returns the entire file contents into the first line read. 

Irgendeine Idee von dem, was ich falsch mache?

Danke,

david

Antwort

5

ich den Zeilenumbruch Charakter bin zu raten, wird möglicherweise nicht \r\n

sein, wenn Sie Ihre gesamte Datei in einem einzelnen String zu lesen, versuchen yourString.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); aufrufen und sehen, ob das für Sie arbeitet.

Auch weil ReadAllLines() nur in eine einzige Zeichenfolge gelesen wurde, könnten Sie einfach ReadAllText() verwenden.

+0

Vielen Dank für Ihre Antwort. Basierend auf Ihren Kommentaren, ist hier ein Testcode-Segment, das ich zusammensetze ... // Get File Lines string [] fileSourceLines = File.ReadAllLines (ConfigTemplate, Encoding.Default); if (fileSourceLines.Length == 1) { Zeichenkette yourString = fileSourceLines [0]; string [] newSourceLines = IhrString.Split (neues Zeichen [] {'\ r', '\ n'}, StringSplitOptions.RemoveEmptyEntries); // Dieses Array enthält immer noch nur 1 String. } newSourceLines Array enthält immer noch nur 1 String. Alle anderen Vorschläge :) Danke, david –

+0

Ok, ich fand nur, dass es dieses Problem war ..... Danke für everyones helfen! –

0

Ihre Datei verwendet wahrscheinlich \n Zeichen (ohne \r) als Zeilenumbrüche.

Verwandte Themen