synchronisation d'un dossier par ftp
Répondre à la discussion
Affichage des résultats 1 à 29 sur 29

synchronisation d'un dossier par ftp



  1. #1
    Neilmine

    synchronisation d'un dossier par ftp


    ------

    Bonjour,
    Je cherche comment faire un programme .bat, visual Basic ou autre qui permettrait de synchroniser un dossier avec un dossier hébergé sur un serveur ftp. J’héberge le serveur ftp sur mon ordinateur avec filezilla, il marche bien et j'ai déjà réussi à télécharger des fichiers avec un programme .bat et visual Basic. Mais je ne sait pas comment faire pour que le programme regarde si le fichier qu'il trouve sur le serveur existe déjà dans le dossier ou non (si il n'y est pas il doit le télécharger). Je ne sait pas non plus comment voir si un fichier du dossier existe sur le serveur car si il n'est plus sur le serveur il faut alors le supprimer.
    Comment faire ? Existe t'il un autre langage de programmation pour le faire plus facilement ?
    merci

    -----

  2. #2
    cherbe

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Bonjour,
    Je cherche comment faire un programme .bat, visual Basic ou autre qui permettrait de synchroniser un dossier avec un dossier hébergé sur un serveur ftp.
    merci
    Bonsoir
    depuis le gestionnaire de fichiers Windows, tu peux monter un disque réseau via FTP :
    - clic-droit sur ordinateur
    - ajouter un emplacement réseau
    - suivant
    - suivant
    - dans adresse réseau, mets ftp://adresse_du_serveur_ftp (celle que tu utilises pour filezilla)

    Ensuite, tu disposes du dossier du serveur FTP sur ton PC
    reste à écrire un script avec une boucle (for each fichier in dossier...) qui va regarder chaque fichier du dossier local. Si le fichier n'existe pas sur le dossier distant, il est copié.
    L'idéal serait de mettre un second test qui regarderait la date de la dernière modification du fichier pour écraser les anciennes versions.

  3. #3
    Neilmine

    Re : synchronisation d'un dossier par ftp

    J'ai mappé le serveur ftp comme disque dur de lettre Z:. J'ai aussi réussi a copier un fichier du serveur vers un dossier avec un .bat contenant xcopy. Mais je ne sait pas comment faire pour que le .bat supprime un fichier du dossier s'il n'existe pas sur le serveur.
    Je ne sait pas non plus comment copié un fichier existant s'il est plus récent sur le serveur. je n'est pas reussi avec xcopy.
    J'ai aussi pensé aux portes documents mais je n'ai pas testé.
    Comment faire ?

  4. #4
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Comment faire ?
    Avec un langage de script un peu plus complet que .bat ou avec Visual Basic puisque vous avez l'air de connaitre ce langage.

  5. A voir en vidéo sur Futura
  6. #5
    cherbe

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    J'ai mappé le serveur ftp comme disque dur de lettre Z:. J'ai aussi réussi a copier un fichier du serveur vers un dossier avec un .bat contenant xcopy. Mais je ne sait pas comment faire pour que le .bat supprime un fichier du dossier s'il n'existe pas sur le serveur.
    Je ne sait pas non plus comment copié un fichier existant s'il est plus récent sur le serveur. je n'est pas reussi avec xcopy.
    J'ai aussi pensé aux portes documents mais je n'ai pas testé.
    Comment faire ?
    Je n'ai jamais utilisé mais cette page semble répondre à la question :
    http://windows.microsoft.com/fr-fr/w...mation-in-sync

  7. #6
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Je vient d'essayer avec un porte document et ça marche bien. Je pense qu'il n'y a donc pas besoin de créer un programme.
    Je me demande aussi si un programme voit la différence entre un dossier et un porte document ? : Es ce que les programmes (ou jeux) marche bien si ils vont chercher des fichiers dans un porte documens ?
    Pour mappé le serveur ftp, j'ai utilisé net drive 2 mais j'ai vu qu'il est payant . Existe t'il un programme ou une fonctionnalité Windows qui permet de faire la même chose ? (il faut que le serveur apparaisse avec une lettre)
    Dernière modification par Neilmine ; 27/01/2015 à 10h37.

  8. #7
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Je vient d'essayer avec un porte document et ça marche bien. Je pense qu'il n'y a donc pas besoin de créer un programme.
    Je me demande aussi si un programme voit la différence entre un dossier et un porte document ?
    Un porte document est un dossier (mais pas l'inverse).
    La principale particularité du porte-document est que son contenu garde un lien avec son origine.

  9. #8
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Est t'il possible avec un porte document qu'il ne synchronise que certain dossier qu'il contient? Mon porte document contient par exemple le dossier "partagé" qu'il doit synchroniser mais il ne dois pas synchroniser le dossier "privé". Si je créé un porte document s'appelant "partagé" et que je copie les fichiers du dossier "partagé" du serveur dedans, il ne synchronisera que les fichiers copiés manuellement au debut et pas les nouveaux fichiers.

  10. #9
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Il serait aussi possible de dire au porte document qu'il synchronise le contenu d'un dossier et pas le dossier. Mais je ne sait pas comment faire.

  11. #10
    cherbe

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Pour mappé le serveur ftp, j'ai utilisé net drive 2 mais j'ai vu qu'il est payant . Existe t'il un programme ou une fonctionnalité Windows qui permet de faire la même chose ? (il faut que le serveur apparaisse avec une lettre)
    La manip que je t'ai donné plus haut ne nécessite aucun programme supplémentaire.

  12. #11
    Neilmine

    Re : synchronisation d'un dossier par ftp

    En faite au lieu d'utiliser un .bat je préfere faire une application avec visual basic (ou autre) car avec le .bat je dois paramétrer des choses avant alors qu'avec visual basic on lance le .exe et il va directement chercher les fichiers sur le serveur.
    Sauf que je ne sait pas comment récupérer la liste les fichiers d'un dossier pour les comparer a ceux du serveur.

  13. #12
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    En faite au lieu d'utiliser un .bat je préfere faire une application avec visual basic (ou autre) car avec le .bat je dois paramétrer des choses avant alors qu'avec visual basic on lance le .exe et il va directement chercher les fichiers sur le serveur.
    Sauf que je ne sait pas comment récupérer la liste les fichiers d'un dossier pour les comparer a ceux du serveur.
    Utiliser :

    Directory.GetFiles("C:\MySearc hPath")
    Ca retourne un tableau de string.

  14. #13
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Bonjour,
    je n'arrive pas a utiliser Directory.GetFiles. Comment faut t-il récuperer les données? j'essai de mettre Directory.GetFiles("C:\MySearc hPath") dans un tableau mais il me met une erreur.
    Ou alors pour les ajouter dans une listbox : ListBox1.Items.Add(Directory.G etFiles("C:\mondossier hPath"))
    Mais il ne m'ajoute rien

  15. #14
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Bonjour,
    je n'arrive pas a utiliser Directory.GetFiles. Comment faut t-il récuperer les données? j'essai de mettre Directory.GetFiles("C:\MySearc hPath") dans un tableau
    Dans un tableau ? Désolé mais je ne comprends pas. Tu disais que tu travaillais avec VB ? Tu es sur que tu n'utilises pas VBA plutôt ? (avec Excel, auquel cas, l'histoire du tableau ferait en effet sens).

  16. #15
    Neilmine

    Re : synchronisation d'un dossier par ftp

    je suis sur microsoft visual basic express 2010

  17. #16
    cherbe

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Bonjour,
    je n'arrive pas a utiliser Directory.GetFiles. Comment faut t-il récuperer les données? j'essai de mettre Directory.GetFiles("C:\MySearc hPath") dans un tableau mais il me met une erreur.
    quelle est la syntaxe utilisée ?
    ceci ne marche pas ?
    mon_tableau()=Directory.GetFil es("C:\MySearc hPath")
    Citation Envoyé par Neilmine Voir le message
    Ou alors pour les ajouter dans une listbox : ListBox1.Items.Add(Directory.G etFiles("C:\mondossier hPath"))
    Mais il ne m'ajoute rien
    Quel est l'intérêt de passer par une ListBox ? Tu vas être obligé de traiter les fichiers à la main ?

    Je t'avais suggéré une solution sur le site Microsoft qui me semblait beaucoup plus rapide à mettre en œuvre.
    Qu'est-ce qui ne va pas ?

  18. #17
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    je suis sur microsoft visual basic express 2010
    Merci de poster le code utilisé.

  19. #18
    Neilmine

    telechargement ftp avec batch

    Bonjour,
    J'utilise un .bat pour télécharger des fichiers depuis un serveur ftp. Le problème est que lorsque je luis demande de télécharger le contenue d'un dossier du serveur avec mget, il télécharge aussi les fichiers déjà existant et les remplaces ce qui est donc très long et inutile.
    Comment faire pour qu'il ne télécharge pas les fichiers déjà existant ?
    merci

  20. #19
    JPL
    Responsable des forums

    Re : synchronisation d'un dossier par ftp

    J'ai fusionné ce message avec la discussion précédente car il s'agit d'un doublon. J'ai déplacé le tout vers le forum Programmation.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  21. #20
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Le code que j'utilise est MonTableau() = Directory.GetFiles("C:\MySearc hPath")
    J'ai regarder le lien : ils expliquent comment marche le ftp et ce qu'il fait mais ils n'expliquent pas comment faire ce que je cherche

  22. #21
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Je pense que le plus simple sera le .bat avec mget. Mais je ne peut pas choisir le dossier de destination. Quand j'utilise 2 .bar, quand je lance le .bat qui telecharge a partir d'un autre .bat , les fichiers telechargés se mettent dans le dossier du premier .bat. exemple il y a 1.bat qui telecharge les fichiers et 2.bat qui appelle 1.bat. Les 2 ne sont pas dans le même dossier et les fichiers vont dans celui de 2.bat. COmment faire pour qu'ils ce metent dans ccelui de 1.bat?
    Dernière modification par Neilmine ; 28/01/2015 à 15h11.

  23. #22
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Le code que j'utilise est MonTableau() = Directory.GetFiles("C:\MySearc hPath")
    J'ai regarder le lien : ils expliquent comment marche le ftp et ce qu'il fait mais ils n'expliquent pas comment faire ce que je cherche
    Je ne comprends pas (bon, on va supposer que tu as eu le bon sens de remplacer "C:\MySearchPath" par le path du répertoire que tu veux scanner).

    Ce code fonctionne parfaitement :

    Code:
    Sub Main()
            Dim myTableau As String()
            myTableau = Directory.GetFiles("C:\")
            For Each fname In myTableau
                Console.WriteLine(fname)
            Next
            Console.ReadKey()
        End Sub
    Dernière modification par Bluedeep ; 28/01/2015 à 15h17.

  24. #23
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Merci pour ce code qui marche très bien. Le problème venait du fait que j'écrivais
    Code:
    MonTableau() = Directory.GetFiles("C:\")
    au lieux de
    Code:
    MonTableau = Directory.GetFiles("C:\")
    .
    J'ai aussi tester ce code pour récupérer la liste des fichiers sur le serveur mais il ne marche pas.
    Existe t-il un code qui permettent de la faire ?
    merci
    Dernière modification par Neilmine ; 28/01/2015 à 17h40.

  25. #24
    Bluedeep

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    J'ai aussi tester ce code pour récupérer la liste des fichiers sur le serveur mais il ne marche pas.
    Existe t-il un code qui permettent de la faire ?
    merci
    Sur le serveur FTP ? Il faut appeler les commandes FTP ad-hoc.

  26. #25
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Je n'ai pas trouvé de commandes ftp ad-hoc. Vous avez un lien ?

  27. #26
    cherbe

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par Neilmine Voir le message
    Je n'ai pas trouvé de commandes ftp ad-hoc. Vous avez un lien ?
    Quand tu es connecté en FTP, tape ? (point d’interrogation)
    Tu peux faire ça dans les commandes DOS ; tape d'abord FTP puis ?

  28. #27
    JPL
    Responsable des forums

    Re : synchronisation d'un dossier par ftp

    Neilmine pense peut-être que ad hoc est le nom d'une commande.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  29. #28
    cherbe

    Re : synchronisation d'un dossier par ftp

    Citation Envoyé par JPL Voir le message
    Neilmine pense peut-être que ad hoc est le nom d'une commande.
    Et moi je suis le capitaine du même métal
    Désolé mais je n'ai pas pu m'en empêcher !
    Dernière modification par cherbe ; 01/02/2015 à 14h09.

  30. #29
    Neilmine

    Re : synchronisation d'un dossier par ftp

    Je sais que ad-hoc n'est pas le nom d'une commande ...
    Pour le .bat j'ai essayer mls et sa marche : j'ai réussi a récupérer la liste des fichiers. mais il y a aussi le nom des dossiers ...
    donc après avoir récupérer la liste des fichiers a télécharger, je les télécharge sauf qu'il me met une erreur : "Replace Existing File with Temp file:Impossible de joindre le port ICMP" et ne me télécharge rien. Pourtant le dossier dans lequel il doit télécharger est vide.
    Le contenu de mon .bat est :

    Code:
    @echo off
    del listeMods.txt
    echo open IP PORT >> ftp.txt
    echo user USER MDP >> ftp.txt
    echo prompt off >> ftp.txt
    echo cd mods >> ftp.txt
    echo mls >> ftp.txt
    echo *.* >> ftp.txt
    echo listeMods.txt >> ftp.txt
    echo close >> ftp.txt
    echo quit >> ftp.txt
    ftp -s:ftp.txt -n
    del ftp.txt
    echo open IP PORT >> ftp.txt
    echo user USER MDP >> ftp.txt
    echo prompt off >> ftp.txt
    echo cd mods >> ftp.txt
    for /f "delims=" %%a in (listeMods.txt) do if exist "%%a" (echo Le mod %%a est deja installé) else (echo get %%a >> ftp.txt) 
    echo close >> ftp.txt
    echo quit >> ftp.txt
    ftp -s:ftp.txt -n
    pause
    Dernière modification par Neilmine ; 03/02/2015 à 15h16.

Discussions similaires

  1. Synchronisation
    Par algerik dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 30/11/2011, 19h24
  2. Synchronisation VGA
    Par invite53ddee96 dans le forum Électronique
    Réponses: 5
    Dernier message: 20/04/2010, 20h36
  3. Réponses: 15
    Dernier message: 19/08/2009, 21h10
  4. synchronisation d'un gps
    Par invite8674240a dans le forum Technologies
    Réponses: 7
    Dernier message: 12/06/2009, 17h29
  5. synchronisation de 2 PC
    Par invitecf0d02ec dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 18/07/2005, 17h05