alainbiou
Messages postés2Date d'inscriptionsamedi 8 mars 2003StatutMembreDernière intervention11 mars 2006
-
11 mars 2006 à 01:02
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 2007
-
11 mars 2006 à 21:23
Bonjour,
j'ai fait un petit bout de code qui scrute en permanence une directory et dés qu'un fichier y est déposé, prend le fichier pour l'envoyer en FTP sur un serveur. Si tout marche bien sur des petits fichiers, il en est pas de meme sur des fichiers importants car les temps de copie n'etant plus negligeable, mon bout de code prend le fichier avant que celui ci ne soit entierement copié dans la directory, ce qui provoque des erreurs au moment du tranfert ftp.
Y a t il une primitive API ou une autre astuce pour savoir si un fichier quelconque est libre, sans aucun utilisateur en cours dessus ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 mars 2006 à 01:10
Salut
A mon avis, deux solutions :
- Si erreur, c'est que le fichier est en cours d'utilisation --> Gérer l'erreur et reporter à plus tard la même action
- Faire une copie locale du fichier (+ rapide) et transférer la copie.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 20071 11 mars 2006 à 21:23
Tu peux aussi vérifier si la taille du fichier change entre deux scans.
Function ShowFileSize(filespec)
Dim fso, f, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filespec)
s = UCase(f.Name) & " utilise " & f.size & " octets."
ShowFileSize = s
End Function