Salut à tous
j`avais rencontré depuis longtemps un problème qui m`a vraiment traumatisé lorsque je désire copier une image uploader par l`utilisateur vers un dossier, le drole c`est que parfois l`opération se termine nikel avec succés mais parfois m`arrive l`erreur suivante:
illegal characters in path
alors la premiere chose que je fesais c`est d`essayer de cerner l`erreur par élimination lorsque j`arrivais à me douter sur la ligne suivante de code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
System.IO.File.Copy(imageToCopy, newImage)
je vous fournis mon code esperant que vous m`aider à trouver une solution et merci d`avance
Code : 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
'declarattion des 2 path pour le transfert de l`image
            Dim imageToCopy As String
            Dim newImage As String
            'declaration des 2 path pour le transfert de l`audio
            Dim audioToCopy As String
            Dim newAudio As String
            'initialisation des 2 path pour le transfert de l`image
            imageToCopy = TextBox1.Text
            nomImage = nomImage + extensionImageFile.ToString
            newImage = "D:/code_de_la_route/images/" + nomImage.ToString
            'initialisation des 2 path pour le transfert de l'audio
            audioToCopy = TextBox2.Text
            nomAudio = nomAudio + extensionAudioFile.ToString
            newAudio = "D:/code_de_la_route/audios/" + nomAudio.ToString
 
            Try
                'enregistrer l`image dans le dossier correspondant
                System.IO.File.Copy(imageToCopy, newImage)'j`ai doute que l`erreur vient d`ici
                'enregistrer l`audio dans le dossier correspondant
                System.IO.File.Copy(audioToCopy, newAudio)
                'preparer les requetes
                Dim sqlQRY1 As String = "INSERT INTO AUDIO  Values ('" + nomAudio + "')"
                Dim sqlQRY2 As String = "INSERT INTO [IMAGE] Values ('" + nomImage + "')"
                Dim sqlQRY3 As String = "INSERT INTO [TEST](Int_Exa,Rep_Correctes,Nom_Aud,Nom_Img)  Values ('" + nomExamen + "','" + repTest + "','" + nomAudio + "','" + nomImage + "')"
                'ouvrir la connexion
                myConnexion.Open()
                'MsgBox(nomImage)
                'creation des commandes
                Dim cmd1 As OleDbCommand = New OleDbCommand(sqlQRY1, myConnexion)
                Dim cmd2 As OleDbCommand = New OleDbCommand(sqlQRY2, myConnexion)
                Dim cmd3 As OleDbCommand = New OleDbCommand(sqlQRY3, myConnexion)
                'exécution des requetes
                cmd1.ExecuteNonQuery()
                cmd2.ExecuteNonQuery()
                cmd3.ExecuteNonQuery()
 
                MsgBox("Test ajouté avec succés.", MsgBoxStyle.Information)
 
                'fermer la connexion
                myConnexion.Close()
                TextBox1.Text = ""
                TextBox2.Text = ""
                CheckBox1.Checked = False
                CheckBox2.Checked = False
                CheckBox3.Checked = False
                CheckBox4.Checked = False
                PictureBox1.Image = Nothing
                PictureBox1.BackgroundImage = Nothing
                nbTest = nbTest - 1
            Catch ex As Exception
                MsgBox("Operation suspendue, merci de cliquer de nouveau sur le bouton 'Enregistrer le Test' !!")
            Finally
                myConnexion.Close()
            End Try
j`ai pas mis tout le code mais il faut admettre que toutes les variables sont déclarés pas de probleme.
pour le message dans le catch je l`avais mis provisoirement pour ne pas montrer l`erreur à l`utilisateur mais c`est pas honnete quoi non?