VB.Net IO.File.Copy

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 24 oct. 2007 à 20:18
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 26 oct. 2007 à 03:26
J'ai un problème avec le IO.File.Copy

J'ai un message d'erreur disant:
The process can not access the file "\Program Files\DataGrid\Coord.txt" because it is being used by another process.

Mais je delete ce fichier qui est mit dans une variable (FichierSave)

Qu'est ce que je ne fais pas de correct ???

Merci de votre aide

Private
Sub cmdEffacer_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles cmdEffacer.Click

Dim ObjetFichier
As StreamReader =
New StreamReader(FichierSave)

Dim ObjetFichierW
As StreamWriter =
New StreamWriter(AppPathTempo &
"\Tempo.txt",
False</gras> )
Do
While ObjetFichier.Peek <> -1
FichierTexte = ObjetFichier.ReadLine()
If txtEfface.Text <> FichierTexte.Split(Separateur)(0)
Then
ObjetFichierW.WriteLine(FichierTexte)
ObjetFichierW.Flush()

End
If
Loop
ObjetFichierW.Close()
ObjetFichier.Close()
IO.File.Delete(FichierSave)
IO.File.Create(AppPathTempo &
"\Tempo.txt")
IO.File.Create(FichierSave)

"\Tempo.txt", FichierSave,
False
)
IO.File.Delete(AppPathTempo & "\Tempo.txt")

End
Sub
A voir également:

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 oct. 2007 à 21:17
....
IO.File.Delete(FichierSave)
IO.File.Create(AppPathTempo &
"\Tempo.txt")
IO.File.Create(FichierSave)                               <------- Peut-etre que ça viens de là ???

"\Tempo.txt", FichierSave,
False
)
IO.File.Delete(AppPathTempo & "\Tempo.txt")

.....

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
24 oct. 2007 à 21:32
J'ai effacer ces deux lignes
IO.File.Create(AppPathTempo & "\Tempo.txt")
IO.File.Create(FichierSave) 

Et j'ai mis un Try au début du code et

Catch Ex
As Exception
MsgBox(Ex.Message)

End
Tryà la fin du code...
Mais j'ai un msgbox qui apparait et qui dit...
ArgumentOutOfRangeException

Merci de ton aide....

Tu vois d'ou peut venir le bug ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 oct. 2007 à 21:45
ben regarde en deboggage sur quelle ligne est déclenché l'exception

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
25 oct. 2007 à 20:29
Re...

Et bien je ne comrpend rien...
J'ai fais plusieurs test et ca me sort toujours le même message.
The process can not access the file "\Program Files\DataGrid\Tempo1.txt" because it is being used by another process.

Mais le problème c'est que je cré le fichier Tempo1 juste avant et ca me sort ce message....

Si quelqu'un voit pourquoi.. moi je suis perdu...

ObjetFichierW.Close()
IO.File.Delete(FichierSave)
IO.File.Create(AppPathTempo &

"\Tempo.txt")
IO.File.Create(FichierSave)
IO.File.Create(AppPathTempo &
"\Tempo1.txt")

IO.File.Copy(AppPathTempo & "\Tempo.txt", AppPathTempo &
"\Tempo1.txt",
False</gras>
)
IO.File.Delete(AppPathTempo & "\Tempo.txt")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 oct. 2007 à 22:31
la syntaxe de Copy est Copy(source,destination,overwrite).

Evidement la destination ne doit pas etre utilisée au moment de la copie, et même ne doit pas exister si overwrite est à False.

Or toi justement avant la copie, tu crée le fichier de destination. Ca ne peut donc pas marcher.

IO.File.Create(AppPathTempo &
"\Tempo1.txt")                    <--------------- ICI

IO.File.Copy(AppPathTempo & "\Tempo.txt", AppPathTempo &
"\Tempo1.txt",
False</gras>
)

Tiens ça ressemble étrangement à la première réponse que je t'ai donné juste au dessus

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
26 oct. 2007 à 03:26
Je ne saisi pas la logique...

Je suis mélé.. car selon moi on doit avoir un fichier existant pour puvoirle copier....

Peux-tu plus expliquer, ou me donner un exemple..

Je fais des test mais sans savoir quoi faire....

Aide moi stp...
0
Rejoignez-nous