Moyen efficace pour supprimer une ligne d'un fichier texte

J'ai besoin de supprimer une ligne d'un fichier texte. Quel est le moyen le plus efficace de le faire? Le fichier peut être potentiellement importants(plus de millions d'enregistrements).

Mise à JOUR:
ci-dessous le code que j'utilise actuellement, mais je ne suis pas sûr si c'est bon.

internal void DeleteMarkedEntries() {
    string tempPath=Path.GetTempFileName();
    using (var reader = new StreamReader(logPath)) {
        using (var writer = new StreamWriter(File.OpenWrite(tempPath))) {
            int counter = 0;
            while (!reader.EndOfStream) {
                if (!_deletedLines.Contains(counter)) {
                    writer.WriteLine(reader.ReadLine());
                }
                ++counter;
            }
        }
    }
    if (File.Exists(tempPath)) {
        File.Delete(logPath);
        File.Move(tempPath, logPath);
    }
}
Si vous avez un tel grand magasin de données, pourquoi n'utilisez-vous pas un "vrai" de la base de données? Est-ce une limitation en ce que les outils dont vous disposez, de vos compétences actuelles ou les spécifications de votre projet?
C'est une exigence "d'en haut". En utilisant réel de la base de données serait plus facile pour moi, mais malheureusement, je ne peux pas l'utiliser.
Il n'est pas bon, il y a un bug désolé : (Voir ma réponse ci-dessous

OriginalL'auteur Valentin | 2009-02-10