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:17
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 - 26 oct. 2007 à 08:25
Salut à tous...

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

8 réponses

cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
24 oct. 2007 à 20:52
Dim
ObjetFichierW

As
StreamWriter =

New
StreamWriter(AppPathTempo &

"\Tempo.txt"
,

False




)



attention si le fichier existe déjà cela peut générer une erreur

rajoute avant le Premier DIM
Try

et à la fin
Catch Ex as Exception
 MsgBox(ex.message)
End Try











Supprime ces lignes
IO.File.Create(AppPathTempo &

"\Tempo.txt"
)
IO.File.Create(FichierSave)



Le savoir n'est que le filtre de l'experience
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:10
Ok j'ai suprimmer les deux lignes et ca genere un message d'erreur dans le mesagebox soit:
ArgumentOutOfRangeException

et si j eréappuis sur le meme bouton ca me sort comme erreur:
The process can not access the file "\Programe Files\DataGrid\Tempo.txt" because it is being used by another process.

Je m'y perd de plus en plus :(....

Merci de votre aide....

Tu vois d'ou peut venir le bug ?
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
24 oct. 2007 à 21:44
The process can not access the file "\Programe Files\DataGrid\Tempo.txt" because it is being used by another process.

ObjetFichierW.dispose

ou

ObjetFichierW =nothing

Le savoir n'est que le filtre de l'experience
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 à 22:18
Ok c'était un erreur par rapport ;a un tableau  ca fonctionne... enfin évidemment il y a un autre erreur ca redit....

The process can not access the file "\Programe Files\DataGrid\Coord.txt" because it is being used by another process.

et J'ai du remettre cette ligne de code... car il ne trouvais pas le fichier
IO.File.Create(AppPathTempo &

"\Tempo1.txt")

Merci de ton aide
0

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

Posez votre question
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
25 oct. 2007 à 08:13
C'est pur cela que je t'invitais à bien découper ton code en plusieurs fonctions, car visiblement, ton fichier est utiliser par ton propre programme dans une autre partie de ton programme, ou utilisé par un autre programme.
Si vraiement obligé d'utilisé un fichier par deux processus, regarde plutot IO.FileStream qui a une option de partage.

Le savoir n'est que le filtre de l'experience
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 à 12:38
Effectivement mon code n'est pas bien divisé....

Mais... Ce que je ne saisi pas.. c'est que mon fichier, pour l'exemple, Coord.txt n'est utilisé que pour faire la lecture du fichier Coord.txt et de mettre ca dans un Tableau.

Comment est-il possible de fermer le fichier Coord.txt après la lecture... ???

Dans mon prog. J'ouvre le fichier Coord.txt
Pour le moment je mets dans mon Load
TraitementFichier(AppPath &
"\Coord.txt")

Private

Sub TraitementFichier(ByVal NomDuFichier AsString
Dim ObjetFichier
As StreamReader =
New StreamReader(NomDuFichier)
......

Après ce code, c'est ici que je ferme mon fichier, si oui, comment ?
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:31
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)
IO.File.Delete(AppPathTempo & "\Tempo.txt"),

----

 
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
26 oct. 2007 à 08:25
Pour tous Stream

Dim Fichier as new Stream........

Fichier.read/Fichier.Readline/Fichier.Write/Fichier.Writeline

............./Fichier.Flush

Fichier.close

Fichier.dispose

Vérifie bien que toutes ces étapes soient bien effectuées.

Regroupe tes fonctions lectures écriture...

Le savoir n'est que le filtre de l'experience
0
Rejoignez-nous