2010-05-06 7 views
5

Ho un'applicazione che sto costruendo che ha bisogno di modificare un file di configurazione.C# File.ReadAllLines non si interrompe nei feed di riga

Il mio problema è che non sono in grado di leggere il file riga per riga. Continuo a geotare l'intero file come una singola stringa.

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. 

Qualche idea di cosa sto facendo male?

Grazie,

David

risposta

5

sto cercando di indovinare il carattere di interruzione di riga usato potrebbe non essere \r\n

Quando si legge l'intero file in una singola stringa, provare a chiamare yourString.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); e vedere se funziona per voi.

Anche dal ReadAllLines() si leggeva comunque in una singola stringa, si poteva semplicemente usare ReadAllText().

+0

Grazie per la risposta. In base ai commenti, ecco un segmento di codice di test che ho messo insieme ... // Get File Lines string [] fileSourceLines = File.ReadAllLines (ConfigTemplate, Encoding.Default); if (fileSourceLines.Length == 1) { string yourString = fileSourceLines [0]; string [] newSourceLines = yourString.Split (nuovo char [] {'\ r', '\ n'}, StringSplitOptions.RemoveEmptyEntries); // Questo array contiene ancora solo 1 stringa. } L'array newSourceLines contiene ancora solo 1 stringa. Altri suggerimenti :) Grazie, David –

+0

Ok, ho appena scoperto che si trattava di questo problema ..... Grazie per tutti quanti aiutare! –

0

Il file probabilmente utilizza \n caratteri (senza \r) come nuove righe.

Problemi correlati