Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 2009
-
24 janv. 2005 à 10:26
cs_Anthony33
Messages postés1Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention20 mai 2005
-
20 mai 2005 à 01:58
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.
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 26 janv. 2005 à 16:07
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.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 26 janv. 2005 à 18:59
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!
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 27 janv. 2005 à 11:55
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 28 janv. 2005 à 09:25
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.
cs_Anthony33
Messages postés1Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention20 mai 2005 20 mai 2005 à 01:58
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 ...