Problème FTP

Signaler
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
-
Messages postés
1
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
20 mai 2005
-
Bonjour à tous,

j'ai un problème.
Je suis en train de développer en C++ builder un petit client FTP tout simple.
En fait, j'aimerai pouvoir créer un chemin complet sur le serveur ftp.
J'y arrive déjà, en utilisant une boucle qui crée un répertoire puis rentre dedans, puis crée le suivant....
J'aimerai savoir s'il existe une fonction qui permet de tester si un répertoire existe.
Qui plus est, si quelqu'un sait comment créer un chemin complet sur le serveur ftp sans devoir faire un boucle, il est bienvenu...

Exemple :
création du repertoire : C\doc\word\
puis création du répertoire : C\doc\excel\
j'aurais un pb car "C" et "doc" existent déjà.

J'utilise le composant NMFTP inclut dans C++ builder.
Je ne désire pas utiliser le composant Indy.


Néo020585

La programmation, c'est l'art de découvrir

7 réponses

Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
fait l'équivalent du ls, ça donne aussi les répertoires

ie

FtpFindFirstFile
et
InternetFindNextFile

l_InfosRepertoire.dwFileAttributes peut valoir FILE_ATTRIBUTE_DIRECTORY

Nota: ça marche que si tu as les droits de faire le ls....

Magic Nono: l'informagicien!
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
J'ai fini par adopter l'utilisation de la librairy "wininet", qui me semble assez complète.
J'utilise un large panel de fonction très utilse, comme :

InternetOpen(...) pour l'ouverture de la connexion internet
InternetConnect(...) pour la connexion à mon serveur ftp
FtpSetCurrentDirectory(...) pour me positionner sur le répertoire que je désire
FtpCreateDirectory(...) pour créer le répertoire manquant
FtpPutFile(...) pour ajouter mon fichier sur le serveur ftp

Malheureusement, j'aimerai qu'avant chaque envoie de fichiers sur le serveur,
le programme compare les dates de dernières modifications des deux fichiers,
et si le fichier sur le serveur est plus récent que le fichier sur le poste client (ou que les 2 ont la même date), alors il n'y a pas de copie, sinon, il y a une copie.
Je n'arrive pas à trouver de fonction qui me permette de le faire.
Si quelqu'un connait une fonction (qui appartienne à la librairy wininet par exemple) qui permette de comparer la date de modif d'1 fichier sur le serveur avec celle d'1 fichier sur le poste client, qu'il me contact au plus vite.


Néo020585

La programmation, c'est l'art de découvrir
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
vois les résolion des pb de synchronisation par exemple de mise à jour des données pda/PC ou portable/fixe
C'est exactement ton pb actu
++
Magic Nono: l'informagicien!
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
A l'heure actuelle, j'utilise tout simplement la fonction
FtpCommand(...) en lui passant comme commande "list" ("ls" ne fonctionne pas)
Puis, pour lire les données réucpérées, j'utilise la fonction
InternetReadFile(...) qui me permet de pouvoir avoir accès au données récup.
Cependant, la format de date qui est renvoyé ne contient pas l'année.
ex : ...Jan 26 10:37...
J'ai chercher sur le net s'il existe des commandes pour récupérer la date avec l'année, j'ai trouvé une fonction qui s'appelle MDTM fichier.extension. Mais elle ne fonctionne pas (j'ai même vérifier en mode console avec MSDOS, aucun résultats, à croire que cette fonction n'existe pas !:))


Néo020585

La programmation, c'est l'art de découvrir
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
j'ai pas le pb j'inscrit la date complete ds le nom des fichiers d'échanges
++
Magic Nono: l'informagicien!
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
Justement, je n'ai pas envie d'utiliser une méthode "bateau". A ma connaissance, il y en a deux que je pourrai utiliser :
- inscrire la date complète dans les fichiers sur le serveur lors de l'envoie
- inscrire toute les dates complète dans un fichier txt stocké sur le serveur. (le seul soucis avec cette solution est que si il y a un très grand nombre de fichier, le fichier sera de plus en plus gros, ce qui ne m'arrange pas du tout)
mais je ne le ferai qu'en dernier recours, si je ne trouve pas une fonction ftp qui le fait.
Je connais la fonction qui le fait sur le poste client :
AnsiString dateFichier = DateTimeToStr(FileDateToDateTime(FileAge(NomDuFichier)));
et j'aimerai si possible exécuter cette commande sur un fichier se trouvant sur le serveur ftp.

Néo020585

La programmation, c'est l'art de découvrir
Messages postés
1
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
20 mai 2005

Salut a tous, je viens faire appel à vous car je rencontre un petit probleme sur une fonction pour le FTP.

COMPOSANT

1 - NMFTP inclut dans C++ builder 6

OBJECTIF

Lister les fichiers présents dans le répertoire "/maps" du FTP dans un composant ListBox

PROBLEM

Avec la commande NList() -> Rien ne s'affiche
Avec la commande List()-> les fichiers s'affiches bien mais également les attributs et la taille des fichiers. (Mais ze veux pas moi)

Existe t'il une alternative qui me permettrai de lister uniquement les fichiers sans l'arborescence ni leur attribut ou poids, juste le nom du fichier quoi ...

Encore merci de votre aide.....