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

Comment peut-on récuperé la taille d'un fichier qui se trouve sur un serveur ftp

4 réponses
Avatar
john.ambou
Bonjour,

Tous est dans l'objet :
Comment peut-on r=E9cuper=E9 la taille d'un fichier qui se trouve sur un
serveur ftp ?

Merci
Johnson

4 réponses

Avatar
Jacques93
Bonjour john.ambou,
a écrit :
Bonjour,

Tous est dans l'objet :
Comment peut-on récuperé la taille d'un fichier qui se trouve sur un
serveur ftp ?



Tout dépend de comment (avec quel outil), on se connecte au serveur FTP.
Par exemple avec le client FTP de W2K / XP,sur le site
ftp.microsoft.com, répertoire
"/Products/Windows/Windows95/CDRomExtras/Accessories" :


ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-r-xr-xr-x 1 owner group 28063 Aug 16 1995 chrmap.exe
-r-xr-xr-x 1 owner group 31531 Aug 17 1995 mousep.exe
-r-xr-xr-x 1 owner group 48367 Aug 17 1995 netwch.exe
-r-xr-xr-x 1 owner group 601305 Aug 16 1995 quikvu.exe
-r-xr-xr-x 1 owner group 56913 Aug 16 1995 sysmn.exe
-r-xr-xr-x 1 owner group 498038 Aug 16 1995 tour95.exe
-r-xr-xr-x 1 owner group 687214 Aug 16 1995 uguide.exe
------
TAILLE

ftp> dir tour95.exe
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-r-xr-xr-x 1 owner group 498038 Aug 16 1995 tour95.exe


A noter que le format des données, dépend du serveur. Ici le serveur FTP
microsoft renvoie :

215 Windows_NT

à la commande :

SYST

ce qui est très proche des formats Unix. A noter également que c'est au
client de s'adapter au format de données renvoyé par le serveur, et non
l'inverse.
--
Cordialement,

Jacques.
Avatar
john.ambou
euh ba je pensé qu'il existait peut etre une moyen qui permettait de
faire cela... sinon j'utilise INET mais j'ai des probleme avec la
fonction execute ,size ... (cf mes anciesn post)

Merci
Johnson
Avatar
Jacques93
Bonjour john.ambou,
a écrit :
euh ba je pensé qu'il existait peut etre une moyen qui permettait de
faire cela... sinon j'utilise INET mais j'ai des probleme avec la
fonction execute ,size ... (cf mes anciesn post)




Si j'ai bien compris le problème, avec Inet, est la récupération de la
taille du fichier sur le serveur avec l'opération SIZE de la méthode
EXECUTE. Si c'est bien cela, quelques questions :

1 - Cette opération fonctionne t-elle sur un fichier existant déjà sur
le serveur, et ayant une taille non nulle ?

2 - A tu essayé "DIR" au lieu de SIZE ?

3 - Quel est le type de ton serveur (visible avec FileZilla, par exemple) ?

4 - Le transfert de fichier s'effectue t-il bien, malgré tout ?


A la base, toujours si j'ai bien compris, l'idée est d'afficher une
barre de progression. Dans le cas d'un UpLoad (.Execute "PUT Source
Destination"), le fichier destination va être remis à zéro, puis le
transfert va commencer : il n'est pas du tout certain qu'avant la fin du
transfert, c'est à dire la fermeture du fichier destination par le
serveur, la taille renvoyée soit représentative de la réalité.

Si on fait un parallèle avec d'autre client FTP, ou même IE, lors d'un
transfert c'est le nombre d'octets transférés et non pas écris qui sert
à la barre de progression, le serveur vit sa vie et gère son système de
fichier le plus souvent de manière asynchrone. Et dans le cas de Inet,
le transfert se faisant en une seule instruction (PUT ou GET), tu n'as
pas accès à ce nombre d'octets transférés (ou je l'ai loupé).

Par ailleurs, mais c'est un avis personnel, je trouve Inet un peu
fourre-tout : HTTP et FTP par exemple ce qui a pour effet de masquer
notamment le fonctionnement de FTP sur deux ports (20 : data, 21 :
control) et de fusionner tout cela dans GetChunck, que l'on soit sur le
contrôle ou sur les données. Ca ne clarifie pas vraiment les choses.

Pour ce qui me concerne, j'ai tout fait avec Winsock, faut dire qu'à
l'époque sous VB5 ... :-D

--
Cordialement,

Jacques.
Avatar
john.ambou
Merci de votre aide!

En fait avant que je ne passe sur INET, j'utilisé les sockets mais
cela pose un probleme de stabilité des données et d'envoi de petit
paquet seulement.
En effet je faisais des paquet de 6Ko max ca me donné un taux de
transfert trés faible.(lorsque j'augmenté ca donné n'importe quoi)

Alors qu'avec inet j'ai un taux de transfert de 100ko/s et
l'intégrité est bonne mais le seul souci c'est que je ne peux avoir
la progression du transfert ...

Mais merci de votre aide !!!