L'ajout d'un texte de début et de fin de fichier en C#

J'ai un processus qui prend une série de "xml" des fichiers. La raison j'ai mis xml entre guillemets, c'est que le texte dans le fichier n'est pas un élément racine qui fait en xml non valide. Dans mon traitement, je tiens à corriger ce problème et d'ouvrir chaque fichier ajouter un nœud racine au début et à la fin de chaque fichier, puis le refermer. Voici ce que j'avais en tête, mais cela implique l'ouverture du fichier, la lecture de tout fichier de marquage sur les nœuds, et puis l'écriture de l'ensemble du fichier. Ces fichiers peuvent être de plus de 20 MO en taille.

        foreach (FileInfo file in files)
        {
            //open the file
            StreamReader sr = new StreamReader(file.FullName);

            //add the opening and closing tags
            string text = "<root>" + sr.ReadToEnd() + "<root>";
            sr.Close();

            //now open the same file for writing
            StreamWriter sw = new StreamWriter(file.FullName, false);
            sw.Write(text);
            sw.Close();
        }

Toutes les recommandations?

  • Juste être curieux: à l'Aide d'une chaîne de ici va être mauvais pour la performance, ou C# string classe assez bon pour cela?
  • La principale raison de ne pas utiliser des chaînes de caractères, c'est qu'il est immuable, ce qui signifie que chaque fois que vous ajoutez des choses à cordes, vous devez faire un nouvel objet de type String. Depuis son code a seulement 2 précédents, je ne vois pas l'avantage de l'utilisation des StringBuilder, mais je suis peut-être raté quelque chose. Comme Earwicker noter toutefois, il existe une meilleure méthode.
  • Je suis tombé sur cette question, parce que je voulais que mes fichiers journaux pour avoir le dernier message en haut. J'ai maintenant déménagé l'enregistrement à une table, et un tri par type DateTime.. 🙂
InformationsquelleAutor adeel825 | 2009-06-17