Bonjour à tous ,
Voici l'exception que je rencontre :
Voici, en gros, mon traitement : J'enregistre la valeur de chaque contrôle présent sur une Form de type Frm_Navette dans le cas ci-dessous. Comme j'écris d'autres informations avant les valeurs des contrôles (TextBox, DateTimePicker, ComboBox...) je passe en paramètre le flux d'écriture :Citation:
IOException : The process cannot access the file because it is being used by another process.
L'exception apparaît donc lors de la tentative de déplacement de répertoire. Dans mes essais, le répertoire de départ ne contenait que le fichier créé ci-dessus. J'ai essayé en le supprimant avant d'exécuter le Directory.Move, en mode pas-à-pas et l'exception est tout de même levée... Donc cela ne semble pas venir du fichier.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub EnregistrerFichier(ByRef Frm_Active, ByVal Path) Dim Str_Writer As StreamWriter = New StreamWriter(CType(Path, String)) If Frm_Active.GetType.Equals(GetType(Frm_Navette)) Then Sauvegarde_Controles(Frm_Active.Tbl_Fiche_Navette, Str_Writer, Path) ' Si la form est d'un certain type, j'appelle ma fonction de sauvegarde End If Str_Writer.Close() ' Fermeture du flux Directory.Move(Path_Old_Troncon, Path_New_Troncon) ' on déplace le contenu d'un répertoire existant (qui contient le fichier texte que 'je viens de créer avec ces 2 méthodes) vers un autre que 'j'ai créé dans une autre portion de code.. et qui existe aussi, j'ai vérifié dans mon debug. ' Pourtant l'exception mentionnée ci-dessus apparaît ici. End Sub Private Sub Sauvegarde_Controles(ByVal Conteneur As Object, ByVal Str_Writer As StreamWriter, ByVal Path_File As String) For Each ctrl As Object In Conteneur.Controls If TypeOf ctrl Is TableLayoutPanel Or TypeOf ctrl Is Panel Then Sauvegarde_Controles(ctrl, Str_Writer, Path_File) ' C'est une fonction récursive qui s'affranchit du nombre de conteneurs Else ' Traitement lorsque l'on arrive sur les contrôles à sauvegarder ... End If
Selon vous pourquoi ai-je cette exception alors que le seul flux utilisé sur le seul fichier du répertoire est refermé?
Cela peut-il venir d'un process sur le répertoire de départ?
J'espère avoir été assez clair,, :bug:
Merci de vos réponses.
Nixar