Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment savoir qu'un fichier transférer est bien finit de l'être ?

2 réponses
Avatar
SunADDICT
Bonjour a tous...

J'utilise un outil qui fait appel a un FileSystemWatcher sur un répertoire
R1 pour
1 - détecter l'arrivée d'un fichier F1 sur ce repertoire R1

2- ensuite retransférer le fichier F1 vers un autre répertoire R2.

Voici mon pb, comment savoir que le fichier F1 dans l'étape 1 est bien finit
d'être arrivé, donc que l'outil peut passer a l'étape 2?
Actuellement le fileSystemWatcher detecte le changement, et dès celui essaie
de passer a l'étape 2, mais dans le cas de fichiers volumineux ceux ci sont
incomplets.
Peux t-on savoir la taille du fichier arrivant chez R1, et dans ce cas de
paramètrer un temps d'attente conséquent?
Ou une autre solution est elle possible?

Merci

8888888888888888888888888888888888888888888888888888888888888

2 réponses

Avatar
Ambassadeur Kosh
je n'ai pas de réponse directe à ta question.

il y'a forcément un ensemble d'evenements qui permettent de savoir dans ton
appli qu'un quidam a ouvert / fermé un fichier.
un coup de reflector sur le filesystemwatcher devrait t'informer sur
"comment c'est fait". reste peut être peut de choses à faire...

ou alors ça existe tout fait, mais la, je ne connais pas. quoiqu'il en soit,
ça sent le unsafe.
Avatar
Simon Mourier [MS]
A priori, le watcher est basé sur l'API win32 ReadDirectoryChangesW

On ne peut pas connaitre à la taille du fichier transféré. De toutes façons,
avec ce genre de problématique de gestion de fichiers, il faut coder sa
logique de fonctionnement en partant du principe que des retries, catch,
etc..; seront nécessaires.

Il est par exemple possible d'essayer d'ouvrir le fichier en écriture (voire
même en lecture avec refus de partage, à essayer). Normalement ca devrait
mal se passer si le fichier n'est pas fini de copier.

Simon.

"Ambassadeur Kosh" a écrit dans le message de
news:
je n'ai pas de réponse directe à ta question.

il y'a forcément un ensemble d'evenements qui permettent de savoir dans
ton
appli qu'un quidam a ouvert / fermé un fichier.
un coup de reflector sur le filesystemwatcher devrait t'informer sur
"comment c'est fait". reste peut être peut de choses à faire...

ou alors ça existe tout fait, mais la, je ne connais pas. quoiqu'il en
soit,
ça sent le unsafe.