2010-05-06 11 views
5

Tengo una aplicación que estoy creando que necesita modificar un archivo de configuración.C# File.ReadAllLines no está interrumpiendo las alimentaciones de línea

Mi problema es que no puedo leer el archivo en línea. Sigo manejando todo el archivo como una sola cadena.

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. 

¿Alguna idea de lo que estoy haciendo mal?

Gracias,

David

Respuesta

5

estoy adivinando el carácter de salto de línea utilizada podría no ser \r\n

Al leer toda su archivo en una sola cadena, intente llamar yourString.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); y ver si funciona para usted.

También desde ReadAllLines() estaba leyendo en una sola cadena de todos modos, simplemente podría usar ReadAllText().

+0

Gracias por su respuesta. Sobre la base de sus comentarios, aquí es un segmento de código de prueba que arme ... // Obtener líneas del archivo de string [] = fileSourceLines File.ReadAllLines (ConfigTemplate, Encoding.Default); if (fileSourceLines.Length == 1) { cadena yourString = fileSourceLines [0]; cadena [] newSourceLines = yourString.Split (new char [] {'\ r', '\ n'}, StringSplitOptions.RemoveEmptyEntries); // Esta matriz todavía solo contiene 1 cadena. } newSourceLines array todavía contiene solo 1 cadena. ¿Alguna otra sugerencia :) Gracias, David –

+0

Ok, acabo de encontrar que era este problema ..... Gracias por ayudar a everyones! –

0

El archivo probablemente usa \n caracteres (sin \r) como nuevas líneas.

Cuestiones relacionadas