cs_nicolasheurtevin
Messages postés88Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention29 août 2006
-
27 avril 2005 à 09:49
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
27 avril 2005 à 16:07
Bonjour,
Dans le cadre d'une petite appli qui permet de faire la sauvegarde d'un fichier, je dois tester si ce dernier est ouvert par son logiciel hôte, comment faire ? Existe-t-il une fonction qui retourne l'état du fichier ?
MaxSoldier
Messages postés289Date d'inscriptiondimanche 10 août 2003StatutMembreDernière intervention28 février 20092 27 avril 2005 à 10:17
Oulà, je vois pas trop comment faire à part lister les processus et
voir si le logiciel hôte ( ?? ) est ouvert mais bon c'est vraiment
limite comme technique...
cs_nicolasheurtevin
Messages postés88Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention29 août 2006 27 avril 2005 à 11:43
Alors je précise je travaille sur une application permettant de sauvegarder le fichier de données utilisé par un logiciel de Paie SAGE. Il y a donc un programme hôte : la Paie SAGE, et un fichier de données, seulement ouvrable avec le logiciel hôte, appelons MASOCIETE.PRH ce fichier de données. Je veux faire un test sur ce fichier pour savoir s'il est en cours d'utilisation ou non par le logiciel hôte. J'espère avoir été un peu plus clair dans mes explications ...
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 27 avril 2005 à 12:41
Avec un gestionnaire d'erreur, ce devrait le faire ...
Function FileInUse(byval Filename as string) as boolean
Dim FN as Long
On Error Goto ErrHdlr
FN = FreeFile
Open Filename For Binary As #FN Len = 1
Close #FN
FileInUse = False
Exit Function
ErrHdlr:
FileInUse = True
End function
Je pense que cela devrait réagir correctement.
Christophe R
cs_nicolasheurtevin
Messages postés88Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention29 août 2006 27 avril 2005 à 12:52
Merci t'es génial, ça marche nickel. Par contre juste petite question, ça n'altère en rien le fichier de faire un test de lecture dessus ? Je m'explique le fichier de données en question est utilisé par plusieurs dizaines de personnes (c'est une application en réseau), donc je voulais être sûr de pas avoir de mauvaises surprises, genre que ça corrompe le fichier ou autre bizarrerie ...
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 27 avril 2005 à 15:10
Normalement non !! Et si tu regarde le code, je ne lit même pas dans le fichier ! J'essaye juste de l'ouvrir afin que VB se plante comme une grosse buse si Windows lui en refuse l'accès. Il n'y a aucune instruction entre le Open et le Close !
Je te conseillerai tout de même de faire des tests avant sur un fichier qui ne craint rien. On ne sait jamais .... mieux vaut être prudent.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 27 avril 2005 à 16:07
Juste un petit truc. Rajoute une ligne "On Error Goto 0" juste après la ligne "Close #FN". Il ne servira pas à grand chose, mais c'est une question de principe. On annule toujours un gestionnaire d'erreur quand le code n'en a plus besoin.