Question

Je travaille sur un utilitaire.

Je veux ajouter des données au début du fichier, mais il est pas annexant écrasant.

Pour exemple: Prenons le fichier.txt:

  

Quelque chose existant ici

Maintenant, je veux ajouter avant la ligne courante « Quelque chose de plus existant ici ». Est-il possible que je peux faire sans utiliser 2 FileStreams?

Était-ce utile?

La solution

Non. Les systèmes de fichiers ne prennent pas en charge essentiellement l'insertion de données dans le fichier - soit vous append à la fin du fichier, ou écrasent les données existantes. Au moins, je ne sais pas de tout système de fichiers ne l'appui, et les API standard ne pas.

Pour modifier un fichier d'une autre façon, la meilleure façon est d'écrire un nouveau fichier, la lecture de l'ancien fichier où vous devez (dans votre cas après avoir écrit le texte précédent). Ensuite, supprimez l'ancien fichier et renommer le nouveau fichier pour avoir le même nom que l'ancien fichier.

(Une version plus sûre de cela implique de renommer l'ancien fichier, renommer le nouveau fichier, puis en supprimant l'ancien fichier -. Ce qui permet une récupération en cas de problème)

Autres conseils

Non. Les fichiers ne sont pas un mode d'insertion de la même manière mot-processeurs font.

Désolé, ce ne est pas ce que vous voulez entendre, mais son fait.

Oui

FileStream fs = new FileStream (path2, FileMode.OpenOrCreate, FileAccess.ReadWrite);

sw = new StreamWriter (fs);

sw.BaseStream.Seek (0, 0);

sw.WriteLine ( "écrire un nouveau texte");

sw.close ()

Cette méthode remplace toutes les données existantes, insérer apparente et remplacer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top