Bannière

Menu

  Accueil
  Forum (Partagé)

PureBasic

  Présentation
  Tutoriaux
      Mode Console
      Mode Screen
      Mode Window
      Autres
  Téléchargements

3D Games-Creator

  Présentation
  Tutoriaux
  Téléchargements

Autres

  Téléchargements
  Partenaires
  Liens
  Contact
  Livre d'Or
  News Letter

FTP avec Commandes_FTP.dll

Voici les parties :

Fichiers Nécessaires
Connexion
Lister un répertoire
Nom d'un fichier
Attribut d'un fichier ou d'un dossier
Taille d'un fichier
Créer un dossier
Supprimer un fichier
Uploader un fichier
Downloader un fichier
Renommer un fichier
Changer de répertoire
Répertoire supérieur
Code d'exemple
Aide sur le code d'exemple

     Fichiers Nécessaires:

     La DLL Commandes_FTP.dll seule ici (11,5 Ko).
     L'archive ZIP avec la DLL, le code source d'exemple d'utilisation en PureBasic, le fichier texte listant les commande ici (7Ko).

 

      Connexion (Lignes 87-88):

     On appelle la fonction "Connexion", pour ce connecter au serveur FTP et connaître le handle de la connexion. Elle est suivie des trois paramètres:
1. Adresse serveur,
2. Identifiant,
3. Mot de passe.
     La valeur retournée est le handle de la connexion (Long), demandée pour presque toutes les fonctions.

 

     Lister un répertoire (Ligne 47):

       On appelle la fonction "Lister_Repertoire",pour lister un répertoire et avoir le nombre de fichiers (et dossiers) qu'il contient. Elle est suivie des deux paramètres:
1. Répertoire à lister (Si la chaîne est vide, ou le paramètre est "", le répertoire courant est listé).
2. hConnect.
     La valeur retournée est le nombre de fichiers (et dossiers) qu'il contient (Word).

 

     Nom d'un fichier (Ligne 50):

     On appelle la fonction "Nom_Fichiers", pour connaître le nom d'un fichier. Elle est suivie du paramètre:
1. Numéro du fichier.
     La valeur retournée est le nom du fichier (String).

 

     Attribut d'un fichier ou dossier (Ligne 51):

     On appelle la fonction "Attribut_Fichiers", pour connaître le l'attribut du fichier ou du dossier. Pour le moment, seul deux attributs sont reconnus correctement:
1 : Dossier
2 : Fichier
3 : Autres (Attributs non reconnus pour l'instant)
     La fonction est suivie d'un paramètre:
1. Numéro du fichier.
     La valeur retournée est l'attribut du fichier (Byte).

 

     Taille d'un fichier (Ligne 53):

On appelle la fonction "Taille_Fichier", pour connaître la taille d'un fichier. Elle est suivie d'un paramètre:
1. Numéro du fichier.
     La valeur retournée est la taille du fichier (Long).

 

     Créer un dossier (Ligne 101):

       On appelle la fonction "Creer_Dossier", pour créer un dossier. Elle est suivie des deux paramètres:
1. hConnect,
2. Nom du nouveau dossier.
     La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

     Supprimer un fichier (Ligne 109):

     On appelle la fonction "Supprimer_Fichier", pour supprimer un fichier. Elle est suivie des deux paramètres:
1. hConnect,
2. Numéro du fichier.
     La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

      Uploader un fichier (Ligne 119):

       On appelle la fonction "Upload", pour uploader un fichier. Elle est suivie des deux paramètres:
1. hConnect,
2. Nom du fichier,
2. Chemin d'accès.
     La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

     Downloader un fichier (Ligne 127):

     On appelle la fonction "Download", pour downloader un fichier. Elle est suivie des deux paramètres:
1. hConnect,
2. Numero du fichier
    La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

      Renommer un fichier (Ligne 138):

     On appelle la fonction "Renommer", pour renommer un fichier. Elle est suivie des trois paramètres:
1. hConnect,
2. Numéro du fichier,
3. Nouveau nom.
     La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

     Changer de répertoire (Ligne 149):

     On appelle la fonction "Changer_Repertoire", pour changer de dossier. Elle est suivie des deux paramètres:
1. hConnect,
2. Numero du dossier.
     La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

     Répertoire supérieur (Ligne 159):

     On appelle la fonction "Repertoire_Superieur", pour remonter au dossier précédent dans l'arbre de construction. Elle est suivie du paramètre:
1. hConnect.
     La valeur retournée est un si la fonction a réussie et zéro si elle a échouée (byte).

 

      Code d'exemple:

Enumeration
 
#Zone_Travail
 
#Nv_Rep
 
#Sup_Fichier
 
#Upload
 
#Download
 
#Renommer
 
#Changer_Repertoire
 
#Repertoire_Superieur
EndEnumeration

#Vrai = 1 : #Faux = 0

Structure Pointeur_Fonctions
  Connexion.l
  Lister_Repertoire.l
  Nom_Fichiers.l
  Taille_Fichiers.l
  Attribut_Fichiers.l
  Creer_Dossier.l
  Supprimer_Fichier.l
  Upload.l
  Download.l
  Renommer.l
  Repertoire_Actuel.l
  Changer_Repertoire.l
  Repertoire_Superieur.l
EndStructure

Structure Data_Fichiers
  Nom.s
  Taille.l
  Attribut.b
; Voir ReadMe.txt pour la liste des attributs.
EndStructure

P_F.Pointeur_Fonctions
Repertoire.s
Nombre_Fichiers.w

Global P_F

NewList Fichiers.Data_Fichiers()

Procedure Actualiser(hConnect.l)
 
ClearList(Fichiers())
 
ClearGadgetItemList(#Zone_Travail)
  Nombre_Fichiers =
CallFunctionFast(P_F\Lister_Repertoire,Repertoire,hConnect)
 
For x = 0 To Nombre_Fichiers-1
   
AddElement(Fichiers())
   
Fichiers()\Nom = PeekS(CallFunctionFast(P_F\Nom_Fichiers,x))
   
Fichiers()\Attribut = CallFunctionFast(P_F\Attribut_Fichiers,x)
   
If Fichiers()\Attribut = 2
     
Fichiers()\Taille = CallFunctionFast(P_F\Taille_Fichiers,x)
   
EndIf
   
AddGadgetItem(#Zone_Travail,-1,Fichiers()\Nom + Chr(10) + Str(Fichiers()\Attribut) + Chr(10) + Str(Fichiers()\Taille))
 
Next x
EndProcedure

If OpenLibrary(0,"Commandes_FTP.dll")
 
If OpenWindow(0,0,0,530,480,#PB_Window_ScreenCentered | #PB_Window_SystemMenu,"FTP")
   
CreateGadgetList(WindowID())
     
ListIconGadget(#Zone_Travail,10,10,390,390,"Nom",200,#PB_ListIcon_FullRowSelect | #PB_ListIcon_HeaderDragDrop)
     
AddGadgetColumn(#Zone_Travail,1,"Attribut",70)
     
AddGadgetColumn(#Zone_Travail,2,"Taille",116)
     
ButtonGadget(#Nv_Rep,410,10,110,30,"Nouveau Dossier")
     
ButtonGadget(#Sup_Fichier,410,50,110,30,"Supprimer un fichier")
     
ButtonGadget(#Upload,410,90,110,30,"Uploader")
     
ButtonGadget(#Download,410,130,110,30,"Download")
     
ButtonGadget(#Renommer,410,170,110,30,"Renommer")
     
ButtonGadget(#Changer_Repertoire,410,210,110,30,"Changer Repertoire")
     
ButtonGadget(#Repertoire_Superieur,410,250,110,30,"Repertoire_Superieur")

    P_F\Connexion =
IsFunction(0,"Connexion")
    P_F\Lister_Repertoire =
IsFunction(0,"Lister_Repertoire")
    P_F\Nom_Fichiers =
IsFunction(0,"Nom_Fichiers")
    P_F\Taille_Fichiers =
IsFunction(0,"Taille_Fichiers")
    P_F\Attribut_Fichiers =
IsFunction(0,"Attribut_Fichiers")
    P_F\Creer_Dossier =
IsFunction(0,"Creer_Dossier")
    P_F\Supprimer_Fichier =
IsFunction(0,"Supprimer_Fichier")
    P_F\Upload =
IsFunction(0,"Upload")
    P_F\Download =
IsFunction(0,"Download")
    P_F\Renommer =
IsFunction(0,"Renommer")
    P_F\Repertoire_Actuel =
IsFunction(0,"Repertoire_Actuel")
    P_F\Changer_Repertoire =
IsFunction(0,"Changer_Repertoire")
    p_F\Repertoire_Superieur =
IsFunction(0,"Repertoire_Superieur")

    hConnect.l =
CallFunctionFast(P_F\Connexion,InputRequester("Adresse FTP","Entrez votre adresse FTP",""),InputRequester("Utilisateur","Nom d'utilisateur :",""),InputRequester("Pass","Entrez votre mot de passe",""))
   
If hConnect = 0 : MessageRequester("Erreur","Connexion Impossible",#MB_ICONError) : EndIf

   
Actualiser(hConnect)

   
Repeat

     
Select WaitWindowEvent()
       
Case #PB_EventCloseWindow
          Sortie =
#Vrai

       
Case #PB_EventGadget
         
Select EventGadgetID()
           
Case #Nv_Rep
             
If CallFunctionFast(P_F\Creer_Dossier,hConnect,InputRequester("Nouveau Dossier","Entrez le nom du nouveau dossier",""))
               
Actualiser(hConnect)
             
Else
                
MessageRequester("Erreur","Impossible de créer le dossier.",#MB_ICONError)
             
EndIf
           
           
Case #Sup_Fichier
             
If GetGadgetState(#Zone_Travail)>-1
               
If CallFunctionFast(P_F\Supprimer_Fichier,hConnect,GetGadgetState(#Zone_Travail))
                 
Actualiser(hConnect)
               
Else
                 
MessageRequester("Erreur","Impossible de supprimer le fichier.",#MB_ICONError)
               
EndIf
             
Else
               
MessageRequester("Attention","Aucun fichier n'est selectionné.",#MB_ICONWarning)
             
EndIf
             
           
Case #Upload
             
If CallFunctionFast(P_F\Upload,hConnect,InputRequester("Nom","Entrez le nom",""),OpenFileRequester("Envoi","","*.* | *.*",0))
               
Actualiser(hConnect)
             
Else
               
MessageRequester("Erreur","Impossible d'uploader le fichier",#MB_ICONError)
             
EndIf
             
           
Case #Download
             
If GetGadgetState(#Zone_Travail)>-1
               
If CallFunctionFast(P_F\Download,hConnect,GetGadgetState(#Zone_Travail))
                 
Actualiser(hConnect)
               
Else
                 
MessageRequester("Erreur","Impossible de telecharger le fichier.",#MB_ICONError)
               
EndIf
             
Else
               
MessageRequester("Attention","Aucun fichier n'est selectionné.",#MB_ICONWarning)
             
EndIf

           
Case #Renommer
             
If GetGadgetState(#Zone_Travail)>-1
               
If CallFunctionFast(P_F\Renommer,hConnect,GetGadgetState(#Zone_Travail),InputRequester("Renommer","Tapez le nouveau nom",""))
                 
Actualiser(hConnect)
               
Else
                 
MessageRequester("Erreur","Impossible de renommer le fichier.",#MB_ICONError)
               
EndIf
             
Else
               
MessageRequester("Attention","Aucun fichier n'est selectionné.",#MB_ICONWarning)
             
EndIf
             
            
Case #Changer_Repertoire
             
If GetGadgetState(#Zone_Travail)>-1
               
If CallFunctionFast(P_F\Changer_Repertoire,hConnect,GetGadgetState(#Zone_Travail))
                 
Actualiser(hConnect)
               
Else
                  
MessageRequester("Erreur","Impossible de changer de repertoire.",#MB_ICONError)
               
EndIf
             
Else
               
MessageRequester("Attention","Aucun fichier n'est selectionné.",#MB_ICONWarning)
             
EndIf
             
           
Case #Repertoire_Superieur
             
If CallFunctionFast(P_F\Repertoire_Superieur,hConnect)
                 
Actualiser(hConnect)
               
Else
                 
MessageRequester("Erreur","Impossible de changer de repertoire.",#MB_ICONError)
               
EndIf

         
EndSelect
     
EndSelect
   
Until Sortie = #Vrai
   
 
EndIf
 
CloseLibrary(0)
 
End
EndIF

     Aide sur le code d'exemple:

 

© Oliv.fr.fm - Design de PourTaPageWeb (Visitez le site)