nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
Modifié par nagashima le 6/11/2013 à 08:24
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
8 nov. 2013 à 09:29
Bonjour à tous,
J'ai un problème lors de l'écriture sur un gros fichier. Mon application à pour rôle de concaténer deux gros fichiers (>20Go) en retirant les doublons.
Tout se passe correctement jusqu'à ce que le fichier soit devenue assez gros (entre 3.5Go et 4Go), et là j'ai une exception :
Impossible de terminer l opération demandée du fait d'une limitation du système de fichiers.
Le code de la fonction qui se charge de l'écriture est :
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 8 nov. 2013 à 08:50
Bonjour,
tu as mis résolu, mais il serait bien que tu sois un peu plus précis pour que les gens qui consulteront ta question puissent trouver leur réponse.
merci et bon codage
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 202317 8 nov. 2013 à 09:29
salut, je l'ai fait en précisant que si le buffer dépasse les 4Koo, soit 4096 caractères, l'exception apparaît. Il se trouve que c'est une erreur dans la classe StreamWriter , avec la fonction d'écriture, où l'exception n'est ni gérée, ni affichée.
Pour ma part, plutot qu'agrandir le buffer, ce qui ferai prendre plus de temps à mon appli, j'ai fais une méthode d'ecriture avec la classe FileStream :
private long Write(string s, long iPos) { FileStream fs = new FileStream(sFicDest, FileMode.Open, FileAccess.ReadWrite); fs.Position = iPos; for (int i = 0; i < s.Length; i++) { try { if (i >= 4090) throw new Exception(); char c = s[i]; fs.WriteByte((byte)c);