Supprimer une ligne spécifique d'un fichier texte en C# est une tâche courante. Voici deux méthodes : une approche simple et une solution basée sur LINQ plus efficace.
Méthode 1 : La méthode du fichier temporaire
Cette méthode crée un fichier temporaire, copie le contenu du fichier original excluant la ligne à supprimer, puis remplace le fichier original. Ceci convient aux fichiers très volumineux où tout charger en mémoire pourrait causer des problèmes.
<code class="language-csharp">string tempFile = Path.GetTempFileName(); using (var reader = new StreamReader("file.txt")) using (var writer = new StreamWriter(tempFile)) { string line; while ((line = reader.ReadLine()) != null) { if (line != "removeme") // Replace "removeme" with your target line writer.WriteLine(line); } } File.Delete("file.txt"); File.Move(tempFile, "file.txt");</code>
Méthode 2 : La méthode LINQ (plus efficace pour les fichiers plus petits)
Pour les fichiers plus petits, LINQ propose une solution plus concise et potentiellement plus rapide. Il filtre les lignes à conserver, puis les réécrit dans le fichier. Le principal avantage est l'exécution différée : le fichier n'est traité que lorsque File.WriteAllLines
est appelé.
<code class="language-csharp">string tempFile = Path.GetTempFileName(); var linesToKeep = File.ReadLines("fileName").Where(l => l != "removeme"); // Replace "fileName" and "removeme" as needed File.WriteAllLines(tempFile, linesToKeep); File.Delete("fileName"); File.Move(tempFile, "fileName");</code>
Considérations importantes :
try-catch
blocs) pour gérer les exceptions potentielles comme FileNotFoundException
.N'oubliez pas de remplacer "file.txt"
et "removeme"
par le chemin réel de votre fichier et la ligne que vous souhaitez supprimer.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!