OVH Cloud OVH Cloud

Encore NetRecupereFichier

4 réponses
Avatar
farplus
Bonjour,
ayant plus au moins resolu (plutot mal que bien mais ça fonctionne) le pb
lié à la récup d'un fichier, voici qu'un autre surgit:
le fichier ainsi récupéré est bloqué tant que le programme
reste ouvert (j'ai essayé également un thread, sans succès). Impossible donc
de le lire ou de l'écraser.
Qqun a une solution ?

4 réponses

Avatar
farplus
au fait il est possible de le lire, mais pas de l'écraser par
netrecuperefichier(...)
il faut le faire "à la main" si frep(..) fsupprime(...)
Avatar
Tanguy
aurait tu fais un fouvre sans fferme dessus ?

sinon peut etre qu'un thread libererait le fichier a sa fermeture

"farplus" a écrit dans le message de
news:3f49dc86$0$26853$
au fait il est possible de le lire, mais pas de l'écraser par
netrecuperefichier(...)
il faut le faire "à la main" si frep(..) fsupprime(...)





Avatar
farplus
non rien à faire (tout essayé); netrecuperefichier refuse d'écraser un
fichier existant
solution envisagée
A) supprimer (ou renommer) le fichier avant récup ou changer le nom de la
cible.
B) en cas de plusieurs fichiers - ce qui est le mien - pour ne pas ralentir
le smilblick:
1) créer un rep temporaire
2) recupérer tous les fichiers
3) arrêter la liaison serveur
4) copier les fichiers à leur destination finale
5) détruire le rep temporaire

"Tanguy" a écrit dans le message de
news: 3f49f738$0$2416$
aurait tu fais un fouvre sans fferme dessus ?

sinon peut etre qu'un thread libererait le fichier a sa fermeture

"farplus" a écrit dans le message de
news:3f49dc86$0$26853$
> au fait il est possible de le lire, mais pas de l'écraser par
> netrecuperefichier(...)
> il faut le faire "à la main" si frep(..) fsupprime(...)
>
>
>




Avatar
Pascal H
"farplus" a écrit dans
news:3f4a0802$0$228$:

non rien à faire (tout essayé); netrecuperefichier refuse
d'écraser un fichier existant
solution envisagée
A) supprimer (ou renommer) le fichier avant récup ou changer le
nom de la cible.
B) en cas de plusieurs fichiers - ce qui est le mien - pour ne pas
ralentir le smilblick:
1) créer un rep temporaire
2) recupérer tous les fichiers
3) arrêter la liaison serveur
4) copier les fichiers à leur destination finale
5) détruire le rep temporaire




Re,
Cette méthode est tout de même la plus prudente car s'il se pose un
problème quelconque lors du transfert, tu dois pouvoir être en mesure
de récupérer le fichier initial (avant écrasement/suppression).
Donc sans forcément passer par un répertoire temporaire, la solution
idéale (mais lourde je te l'accorde) est de faire le NetRecupereFichier
en créant une copie du fichier à transférer ( _monfichier ).

Dès lors que le transfert est terminé, tentative de verrouillage de
l'ancien fichier (en le renommant par exemple), puis renommage de
_monfichier en monfichier).
Tu as ainsi la possibilité de faire un rollback.
Cette méthode est à privilégier si le temps de transfert prévu est long
car elle évite de locker les fichiers trop longtemps. Mais elle
implique une gestion du delta entre le fichier initial et le fichier
rapatrié.
Si le transfert est rapide et/ou se fait fichier par fichier, ta
solution de renommer le fichier à remplacer _avant_ la manip est
idéale.

--
L'habituel défaut de l'homme est de ne pas prévoir l'orage par beau
temps. [ Nicolas Machiavel ]
 
Pascal