Actualites��Archives
Diffusez votre communiqué de presse
�Inscription | Plan du site | 69� visiteurs actifs �
��
���� A la Une
� Actualit�s
� Dossiers
� Coin Technique
� Agenda des salons
� Outils Web

���� R�f�rencement
� R�f�rencement professionnel
� Liens commerciaux
� Devis r�f�rencement

���� Diagnostic
� Popularit� Site Web
� Positionnement Moteur
� WebPage Alerte
� Positionnement Google

���� Archives
� S�lection
� Exp�rience qui parle
� Internet quotidien
� Tous les dossiers

���� Services
� Mise en conformit� de site
� H�bergement
� Communiqu�s de Presse
� Contenu �ditorial
� Webmastering

���� Contact
� Nous contacter
� La protection des donn�es personnelles

���� Technique
� Merise

���� Login
���
����
Inscription

Mot de passe oubli�?

�� Sondage
Les points que vous souhaitez voir traiter � l'avenir ?
4%Actualit�
29%Documentation
52%Exemples de sources
3%Liste de liens
11%Revue logiciels

�� Sondage
Vous vous int�ressez plut�t �
77%Programmation
10%Syst�me
9%Logiciel
5%Mat�riel

�� Sondage
votre niveau technique ?
15%Amateur
44%D�butant
33%Professionnel
7%Expert

���� Rechercher
����
���

�Coin Technique


code source C# : Composant FTP

Voici le code source d'un composant FTP ainsi qu'un squelette d'application cliente FTP utilisant ce composant.
Les fonctionnalit�s FTP de base sont impl�ment�es (Dir, Download, Upload, Delete, Rename, ...).

Il s'agit l� d'un exemple de code, et non d'une application compl�te test�e.
Vous pouvez l'utiliser librement l'application, mais des bugs peuvent survenir lors de l'utilisation.

T�l�charger le code source : FTPCom.zip (31 Ko)
T�l�charger l'ex�cutable : FTPComExe (32 Ko)

Attention, le RunTime Microsoft .Net est indispensable pour ex�cuter le programme. (20,4 Mb)


Voici un exemple de code pour utiliser ce composant.
L'exemple est en C#, mais vous pouvez utiliser �galement ce composant avec tout autre langage compatible avec le Framework .Net de Microsoft.

Utilisation du composant avec Visual Studio .Net
Ajouter le composant dans la ToolBox (customize Toolbox) et faites le glisser sur votre feuille (form).
Le code projet contient un client FTP simple.

Vous aurez peut �tre � changer la R�f�rence FTPCom dans votre projet pour tester l'exemple.
Retirer l'ancienne r�f�rence et ajouter la r�f�rence (Add Reference) � FtpCom.DLL

Exemple de code

Se connecter au serveur FTP.

  ftpc.Username = EFUsername.Text;
  ftpc.Password = EFPassword.Text;
  ftpc.Hostname = CBFTPServer.Text;
  ftpc.Connect();

Une fois la connection �tablie, l'objet re�oit l'�v�nement Connected, il est alors possible d'envoyer la commande Login.

  private void ftpc_Connected(object sender, FTPCom.FTPEventArgs e)
  {
    ftpc.Login();
  }

L'�v�nement Logged est envoy� apr�s une connection r�ussie.
La m�thode Dir() permet d'obtenir la liste des fichiers d'un dossier, ici la racine du serveur.

  private void ftpc_Logged(object sender, FTPCom.FTPEventArgs e)
  {
    ftpc.Dir();
  }

L'�v�nement DirCompleted Event est re�u quand la commande Dir est termin�e.
La propri�t� FileCount contient le nombre de fichiers, utilisez IsFolder() pour d�tecter s'il s'agit d'un fichier ou d'un dossier.
GetFileName() et GetFileSize() retournent le nom et la taille des fichiers

Note : Une collection de fichiers devrait �tre impl�ment�e ici ! pour l'instant j'utilise un tableau.

      
  private void ftpc_DirCompleted(object sender, FTPCom.FTPEventArgs e)
  {
    int i = 0;
    int idimage = 0;
    string msg;
    msg = "Transfered " + e.TotalBytes.ToString() + " bytes in " + 
((float)e.TimeElapsed / 1000).ToString() + " seconds" + CRLF; TextLog.SelectionColor = Color.Black; TextLog.AppendText(msg); ServerView.BeginUpdate(); ServerView.Items.Clear(); ImgListServerSmall.Images.Clear(); ListViewItem lvItem = new ListViewItem(".."); ServerView.Items.Add(lvItem); for (i = 0; i < ftpc.FileCount; i++) { if (ftpc.IsFolder(i)) { string[] items = new String[2]; items[0] = ftpc.GetFileName(i); items[1] = ftpc.GetFileSize(i).ToString(); ImgListServerSmall.Images.Add (m_IconFolder); ServerView.Items.Add(new ListViewItem(items, idimage++)); } } for (i = 0; i < ftpc.FileCount; i++) { if (!ftpc.IsFolder(i)) { string[] items = new String[2]; items[0] = ftpc.GetFileName(i); items[1] = ftpc.GetFileSize(i).ToString(); ImgListServerSmall.Images.Add (ExtractIcon.GetIcon(items[0], false)); ServerView.Items.Add(new ListViewItem(items, idimage++)); } } ServerView.EndUpdate(); this.Cursor = Cursors.Default; }

Pour T�l�charger un fichier sur un glisser d�poser dans la fen�tre locale :

  
  private void ServerView_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
  {
    if (e.Button != 0)
    {
      string msg = "";
      for (int i = 0; i < ServerView.SelectedItems.Count; i++)
      {
        msg += ServerView.SelectedItems[i].Text + "\n";
      }
      ServerView.DoDragDrop(msg, DragDropEffects.Copy | DragDropEffects.Move);
    }
  }
  private void LocalView_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
  {
    if (e.Data.GetDataPresent(DataFormats.Text)) 
      e.Effect = DragDropEffects.Copy;
    else
      e.Effect = DragDropEffects.None;    
  }
  private void LocalView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
  {
    string msg = e.Data.GetData(DataFormats.Text).ToString();
    string[] filename = msg.Split(new char[] { '\n' });
    foreach (string sfile in filename)
    {
      ftpc.FileDownload(sfile);
    }
  }

Une fois le t�l�chargement termin�, l'�v�nement FileDownloadCompleted est �mis

  private void ftpc_FileDownloadCompleted(object sender, FTPCom.FTPEventArgs e)
  {
    string msg = "Transfered " + e.TotalBytes.ToString() + " bytes in "   
+ ((float)e.TimeElapsed / 1000).ToString() + " seconds" + CRLF; TextLog.SelectionColor = Color.Black; TextLog.AppendText(msg); FillLocalView(m_currentFolder); }

Suppression des fichiers s�lectionn�s

  for (int i = 0; i < ServerView.SelectedItems.Count; i++)
  {
    ftpc.Delete (ServerView.SelectedItems[i].Text);
  }
  ftpc.Dir();
  

Renommer un fichier

  private void ServerView_AfterLabelEdit(object sender, 
System.Windows.Forms.LabelEditEventArgs e) { if (e.Label != null) { this.Cursor = Cursors.WaitCursor; string newfilename = e.Label; if (m_previousfilename == "New Folder") { ftpc.DirCreate(newfilename); } else { ftpc.Rename(m_previousfilename, newfilename); } ftpc.Dir(); } }

Fermer la connection

  ftpc.Disconnect();
  ServerView.Items.Clear();
J'esp�re que cet exemple vous sera utile, les commentaires sont les bienvenus.

J�r�me Lacaille
Ingénieur développeur
Spécialiste en Nouvelles Technologies

Webmastering / Développement

�Imprimer�Donner votre avis

Les r�actions


sftp
par�[04.06.2004�10:41 - giill]
Bien ce code...Ma question est : peut-on l'�tendre facilement pour faire du secure FTP ? J'y connais pas grand chose dans ce domaine en fait...

pas de souci
par�[02.06.2004�14:11 - Jam]
En cas de probl�me, allez-voir � cette adresse
http://www.codeproject.com/csharp/ftp.asp

Le composant
par�[02.06.2004�13:56 - dju]
Je doit etre nul. Impossible de me connecter, et aucun message d'erreur avec le try catch.
En plus je recoi meme pas le FTPC_connected!!!!!!!!!!!!!!!!!!!!

Actualit�s du Net

�
�� Sondage
Selon vous, quel est le meilleur moyen d�obtenir du trafic sur un site internet ?
21%Les liens commerciaux
61%Le r�f�rencement naturel
10%Les banni�res de publicit�
3%La publicit� hors ligne
5%Les communiqu�s de presse

�� Archives
� Structurer correctement un document XML�
� Il est temps de passer au XHTML 1.0�
� Votre premi�re page XHTML 1.0�
� Les expressions r�guli�res�

�

Sam-Mag - Un site du r�seau ACORUS 1996-2007
� Copyright ACORUS All rights reserved.- Mentions l�gales

Ce site respecte la loi Informatique et Libert�s. Pour en savoir plus sur la protection des donn�es personnelles, cliquez

r�f�rencement | achat de mot cl� | r�f�rencement international | web actualit�s | boutique en ligne | statistiques web | referencement site web
communiqu� de presse | r�f�rencement internet | r�f�rencement gratuit | referencement professionnel | referencement immobilier

�
Webmaster