2010-05-06 5 views
5

J'ai une application que je construis qui a besoin de modifier un fichier de configuration.C# File.ReadAllLines ne casse pas sur les sauts de ligne

Mon problème est que je ne suis pas capable de lire le fichier ligne par ligne. Je continue à mettre en forme le fichier entier en une seule chaîne.

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. 

Une idée de ce que je fais mal?

Merci,

david

Répondre

5

Je devine que le caractère de saut de ligne utilisé pourrait ne pas être \r\n

Lorsque vous lisez votre fichier entier en une seule chaîne, essayez d'appeler yourString.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); et voir si cela fonctionne pour vous.

Egalement puisque ReadAllLines() était en train de lire dans une seule chaîne de toute façon, vous pouvez simplement utiliser ReadAllText().

+0

Nous vous remercions de votre réponse. Basé sur vos commentaires, voici un segment de code de test que j'ai mis ensemble ... // Récupère les lignes de fichier string [] fileSourceLines = File.ReadAllLines (ConfigTemplate, Encoding.Default); if (fileSourceLines.Length == 1) { chaîne yourString = fileSourceLines [0]; string [] newSourceLines = votreString.Split (new char [] {'\ r', '\ n'}, StringSplitOptions.RemoveEmptyEntries); // Ce tableau contient toujours 1 chaîne. Le tableau newSourceLines contient toujours une seule chaîne. } Toute autre suggestion :) Merci , david –

+0

Ok, je viens de découvrir qu'il était ce problème ..... Merci pour aider tout le monde! –

0

Votre fichier utilise probablement \n caractères (sans \r) que les nouvelles lignes.

Questions connexes