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

C# Discussion :

Codes pour SSH.NET [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut Codes pour SSH.NET
    Bonjour tout le monde,
    Je suis ici car j'ai besoin d'aide pour développer une petite application .NET (C#) qui peu envoyer des fichiers avec SFTP sauf que je ne m'y connais pas en ce dernier , j'ai installé SSH.NET 2016.0.0, et j'ai fais une Form avec 5 TextBox (hôte,port,user,pass et le chemin du fichier), 2 Button (Parcourir et Envoyer) et finalement une ProgressBar qui affichera l'état de l'envoie (j’espère que c'est tout ce qu'il faut), donc mon probleme c'est que je n'arrive pas à trouver les lignes de codes pour faire marcher ma petite appli, si quelqu'un veut bien m'aider je lui en serrai infiniment reconnaissant.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut
    Merci pour les liens theMonz31 mais tu sais je ne suis pas ici car je ne sais pas utiliser un moteur de recherche, j'ai besoin qu'on m'explique un peu, si tu es assez expérimenté pour tout comprendre du premier coup et utiliser du code que tu n'as jamais vu directement ce n'est pas mon cas, je ne suis qu'un débutant qui sais à peine faire de simples appli en ADO.NET....

    bref, j'ai réussi à me connecter mais je ne sais pas comment utiliser ces lignes de codes dans le bouton Envoyer, merci d'avance

    PS: Mon textBox qui contient le chemin du fichier se nomme textBox5, du coup je me demande ce que je dois remplacer par textBox5.Text

    Code : 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
            // Execute a (SHELL) Command - prepare upload directory
            using (var sshclient = new SshClient(ConnNfo)){
                sshclient.Connect();
                using(var cmd = sshclient.CreateCommand("mkdir -p /tmp/uploadtest && chmod +rw /tmp/uploadtest")){
                    cmd.Execute();
                    Console.WriteLine("Command>" + cmd.CommandText);
                    Console.WriteLine("Return Value = {0}", cmd.ExitStatus);
                }            
                sshclient.Disconnect();
            }
     
            // Upload A File
            using (var sftp = new SftpClient(ConnNfo)){
                string uploadfn = "Renci.SshNet.dll";
     
                sftp.Connect();
                sftp.ChangeDirectory("/tmp/uploadtest");
                using (var uplfileStream = System.IO.File.OpenRead(uploadfn)){
                    sftp.UploadFile(uplfileStream, uploadfn, true);
                }
                sftp.Disconnect();
            }

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut
    Bon j'ai enfin réussi à trouver un code qui marche sans prise de tète Je laisse le code de mon bouton envoyé, cela pourrai servir à quelqu'un, on sait jamais.
    Code : 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
            private void button2_Click(object sender, EventArgs e)
            {
                int Port = int.Parse(textBox2.Text);
                string Host = textBox1.Text;
                string Username = textBox3.Text;
                string Password = textBox4.Text;
                string WorkingDirectory = textBox6.Text;
                string UploadDirectory = textBox5.Text;
     
                FileInfo FI = new FileInfo(UploadDirectory);
                string UploadFile = FI.FullName;
                Console.WriteLine(FI.Name);
                Console.WriteLine("UploadFile" + UploadFile);
     
                var Client = new SftpClient(Host, Port, Username, Password);
                Client.Connect();
                if (Client.IsConnected)
                {
                    var FS = new FileStream(UploadFile, FileMode.Open);
                    if (FS != null)
                    {
                        Client.UploadFile(FS, WorkingDirectory + FI.Name, null);
                        Client.Disconnect();
                        Client.Dispose();
                        MessageBox.Show("Envoyé avec succès", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
    Il me reste un dernier truc à faire c'est de voir la progression de l'upload sur la ProgressBar, une idée de comment faire ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut
    Citation Envoyé par -Yox- Voir le message
    Il me reste un dernier truc à faire c'est de voir la progression de l'upload sur la ProgressBar, une idée de comment faire ?
    Bon bah j'ai fini par tout trouver moi même... cela m'a pris plusieurs jours et j'ai du passé par un autre forum anglais, bref je reposte ici la solution que j'ai trouvé et qui marche très bien

    Code : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    private void button1_Click(object sender, EventArgs e)
    {
        // Run Upload on background thread
        Task.Run(() => Upload());
    }
     
    private void Upload()
    {
        try
        {
            int Port = 22;
            string Host = "example.com";
            string Username = "username";
            string Password = "password";
            string RemotePath = "/remote/path/";
            string SourcePath = @"C:\local\path\ ";
            string FileName = "upload.txt";
     
            using (var stream = new FileStream(SourcePath + FileName, FileMode.Open))
            using (var client = new SftpClient(Host, Port, Username, Password))
            {
                client.Connect();
                // Set progress bar maximum on foreground thread
                progressBar1.Invoke(
                    (MethodInvoker)delegate { progressBar1.Maximum = (int)stream.Length; });
                // Upload with progress callback
                client.UploadFile(stream, RemotePath + FileName, UpdateProgresBar);
                MessageBox.Show("Upload complete");
            }
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }
    }
     
    private void UpdateProgresBar(ulong uploaded)
    {
        // Update progress bar on foreground thread
        progressBar1.Invoke((MethodInvoker)delegate { progressBar1.Value = (int)uploaded; });
    }

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/04/2010, 11h46
  2. aide pour code debutant ssh
    Par youkisall dans le forum Administration système
    Réponses: 1
    Dernier message: 28/01/2008, 09h48
  3. [SQL + VB.NET] Alléger mon code pour un accès plus rapide
    Par Miles Raymond dans le forum VB.NET
    Réponses: 8
    Dernier message: 15/10/2007, 23h09
  4. [VB.NET] code pour afficher apercu avant impression
    Par DonJR dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/07/2006, 20h54
  5. Réponses: 5
    Dernier message: 10/07/2006, 15h02

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