IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

FTP tester si fichier existe


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut FTP tester si fichier existe
    Bonjour à tous

    J'ai une appli qui télécharge un fichier sur un ftp
    Le problème est que je ne connais pas le nom du fichier à l'avance puisque celui ci est composé du jour ou il a été déposé

    Mon idée était donc de tester pour les 31 dates possibles et de voir si le fichier existe

    Comment faire pour savoir si le fichier est bien présent dans le ftp ?

    Pour le moment je me contente de faire autant de get que de jour mais au bout d'un moment, le ftp me déconnect
    De plus cela me crée 30 fichiers à 0Ko et 1 bon fichier (donc pas génial)

    Pour info mon code :

    Code vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFso.CreateTextFile("sessionftp.txt")
    Set WshShell = CreateObject("WScript.Shell")
     
    With objFile
    	.WriteLine ftpusername & "@" & ftpserver & " " & gwftpusername
    	.WriteLine ftppass
    	.WriteLine gwftppass
    	.WriteLine "cd " & """" & ftpdir  & """"
    	for jour = 1 to 31
    		if (len(jour) < 2) then jour="0" & jour
    		filetoget="Fichier" & yyyymm & jour & ".csv"
    		.WriteLine "get " & filetoget
    	next 
    	.Close
    End With
     
    strFTP = "%systemroot%\System32\ftp.exe -s:sessionftp.txt " & gwftpserver
    strFTP = WshShell.ExpandEnvironmentStrings(strFTP)
    ' wscript.echo(strFTP)
    WshShell.Run strFTP

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    c'est + de la syntaxe ftp que du vbs
    d'abord faire une commande ls pour récupérer
    les noms des fichiers du répertoire courant du serveur
    sélectionner le nom du fichier présentant la syntaxe souhaitée
    et un get avec ce nom pour finir
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    merci pour ta réponse
    Je connais les commandes que tu m'indiques mais l'idée est de ne pas le faire manuellement

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    N'ayant pas trouvé la solution pour vérifier qu'un fichier existe sur le ftp, j'ai décidé de télécharger les 31 fichiers puis de supprimer tout ceux qui ont une taille de 0Ko

    Pour info, voila mon code

    Code vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFso.CreateTextFile("sessionftp.txt")
    Set WshShell = CreateObject("WScript.Shell")
     
    With objFile
    	.WriteLine ftpusername & "@" & ftpserver & " " & gwftpusername
    	.WriteLine ftppass
    	.WriteLine gwftppass
    	.WriteLine "cd " & """" & ftpdir  & """"
    	For jour = 1 to 31
    		if (len(jour) < 2) then jour="0" & jour
    		filetoget="Fichier" & yyyymm & jour & ".csv"
    		.WriteLine "get " & filetoget
    	Next 
    	.WriteLine "quit"
    	.Close
    End With
     
    strFTP = "%systemroot%\System32\ftp.exe -s:sessionftp.txt " & gwftpserver
    strFTP = WshShell.ExpandEnvironmentStrings(strFTP)
    WshShell.Run strFTP,,true
     
    stRep = "C:\monRep"
    If objFso.FolderExists(stRep) Then
    	For each oFichier in  objFso.GetFolder(stRep).Files
    		if oFichier.Size = 0 then 
    			oFichier.delete
    		end if 
    	Next
    End If
     
    Wscript.Echo "Transfert terminé"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FTP] écraser un fichier existant en ftp avec php
    Par seb nantes dans le forum Langage
    Réponses: 6
    Dernier message: 20/12/2007, 00h01
  2. [FTP] Tester l'existence d'un fichier à distance
    Par julien.63 dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2006, 18h09
  3. Réponses: 17
    Dernier message: 18/08/2006, 13h13
  4. [FTP] Tester l'existence d'un fichier.
    Par antony dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2006, 18h54
  5. [langage] tester si un fichier existe
    Par schnecke dans le forum Langage
    Réponses: 3
    Dernier message: 02/03/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo