Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1705 connectés 

 


Dernière réponse
Sujet : [VB6] Pourquoi mon programme de téléchargement fonctionne mal ?
LMF En fait, j'ai touvé un début de solution, les fichiers sont copié sur le DD dans le tépertoire temp...internet files dans diférents répertoires, il faut les supprimers entre chaque changement de serveur.
Merci quand meme Kyle.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
LMF En fait, j'ai touvé un début de solution, les fichiers sont copié sur le DD dans le tépertoire temp...internet files dans diférents répertoires, il faut les supprimers entre chaque changement de serveur.
Merci quand meme Kyle.
Kyle_Katarn Ca te va pas alors ?
thegti Tiens les pros de la programmation "pour FTP"
J'ai une question moi:
est ce qu'on peut outrepasser l'utilisation de répertoire COM1, COM2, etc... ?
Comment connaitre les répertoires qui sont derrière ?
LMF C'est sympa merci, mais je dois utiliser des outils maison.
Kyle_Katarn Dans le pire des cas, je te mettre les sources à disposition sur mon site (c'est du vb6 + winsock "tout con" )
Kyle_Katarn Ca te va alors ?
LMF :hello:
LMF ok, je vais voir a quoi ca ressemble.
Sinon, ce programme est pour l'entreprise ou je fais mon stage( entr d'info en +), j'espere que c'est pas du tout pret :D
Kyle_Katarn Je te conseille mon composant K-ftp que j'ai codé tout seul est  qui est dispo gratos sur mon site.
 
Je suis ouvert à tout commentaire.
LMF Mon programme doit lire dans une base de données access les différents parametres de connections a des comptes/serveurs FTP dans le but de télécharger tous les fichiers présents dans les comptes.
->MAis dans les différents comptes, quelques fichiers ont un nom identique mais de taille différentes.
Le probleme est que tous les fichiers de nom identiques sont remplacé sur le Disque dur (destination donnée par lecture de la base)par le premier du nom.
 
exemple : compte 1
fichier téléchargé :
azerty.log (1000KO)
aqw.aze(50KO)
 
compte 2
fichier téléchargé :
azerty.log (1000KO) (en réalité 1500KO, c'est donc meme que le premier)
vfr.aze(40KO)
...
De plus le second azerty.log met quelques secondes a etre téléchargé alors qu'il devrait mettre plus de temps (connection numéris), probleme de cache ????
 
voici le code :
' Déclaration des constantes
    Private Const SESSION As String = "Ftp Session"
    Private Const INTERNET_OPEN_TYPE_DIRECT = 1
    Private Const INTERNET_SERVICE_FTP = 1
    Private Const INTERNET_INVALID_PORT_NUMBER = 0
    Private Const ERROR_NO_MORE_FILES = 18
             
 'définition des variables globales
    Private mlINetHandle As Long
    Private mlConnection As Long
    Dim pData As WIN32_FIND_DATA
    Dim inetHandle As Long
Private Sub btquit_Click()
End
End Sub
 
Private Sub btstart_Click()
Dim dbimport As ADODB.Connection
Dim rstserveur As ADODB.Recordset
Dim nbenr As Integer
Dim ser, comp, pass, nom As String
 
     'ouverture catalogue
    Set dbimport = New ADODB.Connection
    With dbimport
        .Provider = "Microsoft.jet.OLEDB.4.0"
        .Mode = adModeShareDenyNone
        .Open "c:\fred\ftp\PR.mdb "
    End With
     
     ' Déclaration et ouverture du Recordset sur la table
     Set rstserveur = New ADODB.Recordset
 
    With rstserveur
         .LockType = adLockOptimistic
         .CursorLocation = adUseClient
         .Open "Serveur", dbimport, , , adCmdTable
    End With
     nbenr = rstserveur.RecordCount
         
    For i = 0 To 2
    'nbenr -1 (pour éviter de tout télécharger)
             
        ' Initialisation
          mlINetHandle = 0
          mlConnection = 0
         
        nom = rstserveur("nom" )
        Text1.Text = nom
       ' MsgBox ""
          ' Récupération des paramètres de connexion
         
        ser = rstserveur.Fields("serveur" )
        comp = rstserveur.Fields("compte" )
        pass = rstserveur.Fields("password" )
         
        'depart procédé de connection
         
        'Connexion internet
        mlINetHandle = FTP.InternetOpen(SESSION, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
     
         'ouverture connexion au site
        mlConnection = FTP.InternetConnect(mlINetHandle, ser, INTERNET_INVALID_PORT_NUMBER, _
        comp, pass, INTERNET_SERVICE_FTP, 0, 0)
    If (mlConnection = 0) Then
        MsgBox "erreur de connexion, vérifiez les paramètres ou attendez quelques instants", vbInformation, "Connexion"
    End If
     
     ' Déplacement au répertoire désiré
    cheminFTP = rstserveur.Fields("Rep_distant" )
       
    retour = FTP.FtpSetCurrentDirectory(mlConnection, cheminFTP)
    If (retour = False) Then MsgBox "erreur de changement de dossier", vbInformation, "FTP error"
       
    Text2.Text = "connection en cours; veuillez patienter..."
       
      'efface la liste
        List1.Clear
         
    'rempli la liste
    inetHandle = FTP.FtpFindFirstFile(mlConnection, "*.*", pData, 0, 0)
 
    If (inetHandle <> 0) Then
        If List1.List(0) = "" Then
        Do
        currentFile = Left$(pData.cFileName, InStr(1, pData.cFileName, vbNullChar, vbBinaryCompare) - 1)
        List1.AddItem currentFile
        fctreturn = FTP.FTPFindNextFile(inetHandle, pData)
 
        Loop While fctreturn
             End If
    End If
     
        Dim m4, dirname As String
        Dim z4, i4 As Integer
        Dim retour4 As Boolean
             
        z4 = List1.ListCount
         
           
        dirname = Dir(rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\", 16)
        If dirname = "" Then
                MkDir rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\"
            Else
                Set fso = CreateObject("Scripting.FileSystemObject" )
                fso.DeleteFile rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\" + "*.*"
        End If
                             
        'crée un répertoire selon le nom du serveur
         
        'télécharge les fichiers du serveur dans le répertoire crée
         
        m4 = ""
        For i4 = 0 To (z4 - 1)
             m4 = ""
             m4 = List1.List(i4)
    '         MsgBox mlConnection
   '          MsgBox rstserveur.Fields("Rep_Local" ) & rstserveur.Fields("nom" ) & "\" & m4
             retour4 = FTP.FtpGetFile(mlConnection, m4, rstserveur.Fields("Rep_Local" ) + rstserveur.Fields("nom" ) + "\" + m4, True, FILE_ATTRIBUTE_NORMAL, INTERNET_FLAG_RELOAD + INTERNET_FLAG_TRANSFER_BINARY, 0)
             If retour = True Then
                Text2.Text = m4 + " copié"
            End If
        Next i4
       Text2.Text = "Fichiers téléchargés !"
       Text1.Text = ""
       rstserveur.MoveNext
        ' fermeture de la connexion au site FTP
        FTP.InternetCloseHandle mlConnection
       ' fermeture de la connexion internet
     
       FTP.InternetCloseHandle mlINetHandle
    Next i
   End Sub

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)