OVH Cloud OVH Cloud

[WD75] Transfert FTP

6 réponses
Avatar
Roumegou Eric
Comment avec les fonctions ftp de WD75 (FTPEnvoie, etc ...) savoir si
un fichier a bougé avant de le renvoyer ?

Mon traitement récupère des fichiers en local, les renomme ou les
sauvegarde en image et doit les transférer par FTP.

Donc il faudrait que je teste si le fichier n'existe pas et s'il existe
déjà, est ce le meme ?

je suppose que c'est un truc à base de taille etc ... mais si vous avez
un bout de code, ça m'interresse.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)

6 réponses

Avatar
Michel
Roumegou Eric a écrit :
Comment avec les fonctions ftp de WD75 (FTPEnvoie, etc ...) savoir si un
fichier a bougé avant de le renvoyer ?

Mon traitement récupère des fichiers en local, les renomme ou les
sauvegarde en image et doit les transférer par FTP.

Donc il faudrait que je teste si le fichier n'existe pas et s'il existe
déjà, est ce le meme ?



pourquoi doit-tu tester si le fichier existe ? pour la récupération ou
pour le transfert ?

Michel
Avatar
Roumegou Eric
Michel avait écrit le 11/02/2005 :
Roumegou Eric a écrit :
Comment avec les fonctions ftp de WD75 (FTPEnvoie, etc ...) savoir si un
fichier a bougé avant de le renvoyer ?

Mon traitement récupère des fichiers en local, les renomme ou les
sauvegarde en image et doit les transférer par FTP.

Donc il faudrait que je teste si le fichier n'existe pas et s'il existe
déjà, est ce le meme ?



pourquoi doit-tu tester si le fichier existe ? pour la récupération ou pour
le transfert ?

Michel



pour le transfert.
En fait je voudrais "économiser" les transferts si le fichier est déjà
présent et que c'est bien le mème.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
jacques.trepp
Dans son message précédent, Roumegou Eric a écrit :
Michel avait écrit le 11/02/2005 :
Roumegou Eric a écrit :
Comment avec les fonctions ftp de WD75 (FTPEnvoie, etc ...) savoir si un
fichier a bougé avant de le renvoyer ?

Mon traitement récupère des fichiers en local, les renomme ou les
sauvegarde en image et doit les transférer par FTP.

Donc il faudrait que je teste si le fichier n'existe pas et s'il existe
déjà, est ce le meme ?



pourquoi doit-tu tester si le fichier existe ? pour la récupération ou pour
le transfert ?

Michel



pour le transfert.
En fait je voudrais "économiser" les transferts si le fichier est déjà
présent et que c'est bien le mème.



Salut Eric,
y avait un bout de code en 5.5 pour connaitre et modifier la date/heure
d'un fichier.
Malheureusement, je n'ai que l'exe : CHG_DATE.EXE.
joie! :') je viens de le retrouver. ça utilise fDate et fHeure pour
connaitre date et heure.

--
Jacques Trepp
Albygest
Avatar
Pascal F
Roumegou Eric a utilisé son clavier pour écrire :

pour le transfert.
En fait je voudrais "économiser" les transferts si le fichier est déjà présent et que c'est bien le mème.



Bonsoir,
Voici le code que j'utilise:
Dans le traitement où je veux récupérer la liste des fichiers du serveur FTP et la date:

gnIdEvenement=Evénement("Compte_Fichier","Recupbas","REPERT")
// Récupération de la liste des fichiers avec une extensions ZIP
FTPListeFichier(gnIdConnexion,"pub/concessi/start*.zip","REPERT",FTPFichier)
Compte_Fichier est la procédure déclenchée par l'instruction FTPListeFichier
Recupbas est le nom de la fenetre sur laquelle l'événement doit être intercepté
REPERT est une liste.

PROCEDURE Compte_Fichier()
// On rajoute le nom dans la liste
RECUP_DATE=FTPDate()
// Sur certains serveur la date du jour est renvoyé décalée d'un an
SI DateVersEntier(RECUP_DATE)+365ÚteVersEntier(DateSys()) ALORS RECUP_DATEÚteSys()

ListeAjoute("REPERT",FTPNom())
Multitache()
// Ajout dans une table du nom du fichier sans extension, de la date et de la taille du fichier présent sur le serveur FTP
TableAjoute("TABLE1",ExtraitChaîne(REPERT[REPERT..Occurrence],1,".")+TAB+RECUP_DATE+TAB+FTPTaille())
// Pour que le parcours de fichier continue
RECUP_DATE=""

_EVE.RETOUR=Vrai

Ensuite je compare avec la date du fichier local.
POUR i=1 A TABLE1..Occurrence
SI fDate(EDREPLOC+""+NUMCONC[i]+".zip")<RECU_LE[i] ALORS // numconc est la colonne de la table dans laquelle est le nom du fichier et edreploc est le
répertoire local
A_CHARGER[i]=1
SINON
A_CHARGER[i]=0
FIN
FIN

Il suffit de faire aussi la comparaison sur la taille.
Je lance le traitement (récupération du site FTP dans mon cas) sur le clic d'un bouton qui lit toutes les lignes de la table et récupère uniquement les
fichiers pour lesquels A_Charger est à vrai.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
Bertrand
Roumegou Eric a utilisé son clavier pour écrire :
Comment avec les fonctions ftp de WD75 (FTPEnvoie, etc ...) savoir si un
fichier a bougé avant de le renvoyer ?

Mon traitement récupère des fichiers en local, les renomme ou les sauvegarde
en image et doit les transférer par FTP.

Donc il faudrait que je teste si le fichier n'existe pas et s'il existe déjà,
est ce le meme ?

je suppose que c'est un truc à base de taille etc ... mais si vous avez un
bout de code, ça m'interresse.



attention, c'est très long de faire ça, d'interroger chaque fichier
distant pour en connaitre ses caractéristiques !
il est beaucoup plus rapide de maintenir à jour un fichier sur le
serveur ftp qui décrit la liste des fichiers présents avec leurs
caractéristiques en date, taille, etc
tu récupère ce fichier, tu compares avec ce que tu as et tu télécharge
ce qui a changé.

Bertrand
Avatar
Roumegou Eric
Bertrand a formulé ce samedi :
Roumegou Eric a utilisé son clavier pour écrire :
Comment avec les fonctions ftp de WD75 (FTPEnvoie, etc ...) savoir si un
fichier a bougé avant de le renvoyer ?

Mon traitement récupère des fichiers en local, les renomme ou les
sauvegarde en image et doit les transférer par FTP.

Donc il faudrait que je teste si le fichier n'existe pas et s'il existe
déjà, est ce le meme ?

je suppose que c'est un truc à base de taille etc ... mais si vous avez un
bout de code, ça m'interresse.



attention, c'est très long de faire ça, d'interroger chaque fichier distant
pour en connaitre ses caractéristiques !
il est beaucoup plus rapide de maintenir à jour un fichier sur le serveur ftp
qui décrit la liste des fichiers présents avec leurs caractéristiques en
date, taille, etc
tu récupère ce fichier, tu compares avec ce que tu as et tu télécharge ce qui
a changé.

Bertrand



Merci à tous de vos précieux conseils, je regarde ça dès maintenant. Je
crois que je vais retenir la suggestion de mémoriser le transfert sur
une table (meme si cela ne pourra tenir compte des interventions hors
applis, avec un client FTP quelconque)

Mais comme c'est pour màj une base documentaire, le flux risque d'être
important et je ne voudrais pas rebalancer toute la sauce pour une
seule modif.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)