Bonjour,
je réalise le téléchargement d'un fichier du service vers le client. Mon problème est que si je relance un deuxième téléchargement du MEME fichier, l'application me renvoie cette erreur:
"The process cannot access the file Chemin du fichier' because it is being used by another process."
Ce qui semble signifier que, quelque part dans mon code je ne libère pas le fichier (j'ai essayé d'ouvrir le fichier à partir de l'explorateur et effectivement il est utilisé par une autre application). Le problème est que je ne vois pas d'où cela vient.
Voici mon code côté service:
Simple envoie de fichier en fonction du nom passé en paramètre.
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public MessageFile DonneFichierRapport(NomFichier nomFichier) { FileInfo finfo = new FileInfo(nomFichier.FileName); FileStream fstream = new FileStream(finfo.FullName, FileMode.Open); MessageFile mfile = new MessageFile(finfo.Name, finfo.Length, fstream); return mfile; }
Côté client:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 mfile = _impressionEdition.DonneFichierRapport(nomFichier); sourceStream = mfile.DataFile; string uploadFolder = String.Format("{0}{1}\\{2}", AppDomain.CurrentDomain.BaseDirectory , ConfigurationSettings.AppSettings["UploadDirectory"] , mfile.FileName); using (destinationStream = new FileStream(uploadFolder, FileMode.Create, FileAccess.Write, FileShare.None)) { const int bufferLen = 8192; byte[] buffer = new byte[bufferLen]; int count = 0; while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0) { destinationStream.Write(buffer, 0, count); } sourceStream.Close(); }
Merci d'avance pour votre aide!!!!!
Partager