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

[WDxx] Problème avec fRepCopie

2 réponses
Avatar
Georges Peyre
Bonsoir,

ResCopie = fRepCopie(RepertoireOrigineCopie,
RepertoireDestinataireCopie, frJauge + frRécursif)
// Affichage du message d'erreur si la copie n'a pas été effectuée
SI ResCopie = Faux ALORS
Erreur(ErreurInfo(errMessage))
SINON
// Info("Le répertoire a été copié")
FIN


L'utilisation de fRepCopie est très pratique notamment pour la copie
des sous-répertoires grace au paramètre frRecursif

Le paramètre frJauge affiche en réalité la jauge Windows qui s'affiche
lorsqu'on copie un répertoire dans l'explorateur Windows ce qui permet
de voir le défilement des fichiers copiés

Jusque là tout va bien !


Le problème est que lors de la détection d'une erreur de copie pour un
fichier, la commande erreur(ErreurInfo(errMessage)) se contente de
signaler par exemple que le fichier n'a pu être copié par exemple parce
qu'il était ouvert ou tenu par une application sans préciser le nom du
fichier.

Donc pour connaitre le nom du fichier qui pose problème il faut
relancer la copie du répertoire dans l'explorateur Windows : lors du
problème un message de l'explorateur stoppe la copie et affiche le nom
du fichier qui est en cause

Ma question est la suivante :
Existe-t-il une astuce sous Windev pour récupérer le nom du fichier à
problème et compléter ainsi la commande erreur(ErreurInfo(errMessage))
?

Cordialement

--
Elle est pas belle la vie ?

2 réponses

Avatar
Gilles TOURREAU
Après mûre réflexion, Georges Peyre a écrit :
Bonsoir,

ResCopie = fRepCopie(RepertoireOrigineCopie, RepertoireDestinataireCopie,
frJauge + frRécursif)
// Affichage du message d'erreur si la copie n'a pas été effectuée
SI ResCopie = Faux ALORS
Erreur(ErreurInfo(errMessage))
SINON
// Info("Le répertoire a été copié")
FIN


L'utilisation de fRepCopie est très pratique notamment pour la copie des
sous-répertoires grace au paramètre frRecursif

Le paramètre frJauge affiche en réalité la jauge Windows qui s'affiche
lorsqu'on copie un répertoire dans l'explorateur Windows ce qui permet de
voir le défilement des fichiers copiés

Jusque là tout va bien !


Le problème est que lors de la détection d'une erreur de copie pour un
fichier, la commande erreur(ErreurInfo(errMessage)) se contente de signaler
par exemple que le fichier n'a pu être copié par exemple parce qu'il était
ouvert ou tenu par une application sans préciser le nom du fichier.

Donc pour connaitre le nom du fichier qui pose problème il faut relancer la
copie du répertoire dans l'explorateur Windows : lors du problème un message
de l'explorateur stoppe la copie et affiche le nom du fichier qui est en
cause

Ma question est la suivante :
Existe-t-il une astuce sous Windev pour récupérer le nom du fichier à
problème et compléter ainsi la commande erreur(ErreurInfo(errMessage)) ?

Cordialement



Regardes le message au niveau de Windows :
ErreurInfo(errMessageSystème)

Sinon 2 solution :

- Programmer sois même la copie récursive en Windev et contrôler ainsi
le fichier qui est en cours de copie.
- Ou alors utiliser la fonction shell du Windows SHFileOperation avec
un branchement sur uen fonction callback à l'aide de la fonction
CopyCallback.

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Georges Peyre
Bonjour Gilles
Gilles TOURREAU avait écrit le 07/09/2006 :
Regardes le message au niveau de Windows : ErreurInfo(errMessageSystème)


Le message précise seulement une raison généralisée imprécise de la
cause de l'erreur sans afficher le nom du fichier qui provoque l'erreur


Sinon 2 solution :

- Programmer sois même la copie récursive en Windev et contrôler ainsi le
fichier qui est en cours de copie.


C'est quand même dommage d'en arriver là car outre la fonction de copie
fRepCopie inclu aussi la suppression automatique d'un fichier existant
recopié
fRepCopie c'est une seule ligne de code !


- Ou alors utiliser la fonction shell du Windows SHFileOperation avec un
branchement sur uen fonction callback à l'aide de la fonction CopyCallback.



En réalité la fonction jauge provoque l'affichage de la même fenêtre
que celle affichée par l'explorateur dans laquelle on voit défiler les
fichiers copiés.
Par contre, avec l'explorateur si problème, une fenêtre affiche alors
un message explicite du problème et surtout le nom du fichier en cause.
Donc je pense que c'est Windev qui devrait faire cette fonction
CopyCall back

J'ai fait une DI auprès du ST PcSoft pour compléter le message d'erreur
avec le nom du fichier en erreur : j'attends leur réaction

Cordialement

--
Elle est pas belle la vie ?