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 :

Problème d'instance à un objet ( transfer de fichier vers serveur distant sftp) [Débutant]


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Problème d'instance à un objet ( transfer de fichier vers serveur distant sftp)
    Bonjour,

    Etant actuellement en stage etudiant en iris,
    je suis confronté à un problème que je n'arrive pas à résoudre.
    J'ai fais mes recherches avant de poster ce petit message d'aide mais sans résultat.
    Dans mon projet de gestion de sauvegarde, je voudrais transferer les fichier d'une sauvegarde du disque local vers le serveur distant ftp/sftp, mais voilà, il me met une erreure d'instance d'un objet.

    Pouvez-vous m'aider svp ?


    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
     
    static bool TransfertFichiersVersServeur(ArrayOfStrucFichier listeFichiersATranferer)
            {
     
                for (int i = 0; i < listeFichiersATranferer.Count; i++)
                {
     
                    string chemin = listeFichiersATranferer[i].cheminFichier;
     
                    if (File.Exists(chemin))
                    {
                        ITransferProtocol sshCp = new Sftp("Adresse Serveur", "Utilisateur", "Mot de passe");
                        sshCp.Connect();
     
                    Erreur   ----> sshCp.Put(chemin, chemin.Replace("\\","{{{"));
                   " La référence d'objet n'est pas définie à une instance d'un objet."
     
     
                        sshCp.Close();
                    }
                }
                return true;
            }
    J'ai donc essayer de régler le problème par rapport l'aide conseillé mais rien n'y fait, j'ai ensuite chercher plusieurs sujet à ce propos et je trouve toujours le même problèmes qui est un problème de new hors, je le fait dans mon codage.
    J'ai déclaré le sshCp avec Sftp mais le problème persiste encore :s

    Voilà, en ésperant avoir des réponses.


    Merci d'avance,
    Meld.

  2. #2
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Bonjour
    Passe sur ton code en debug avec un point d'arrêt sur et regarde la valeur prise par chemin...
    Je pense qu'il prend une valeur null à un moment.
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Je viens de vérifier en mode pas à pas et même après la génération d'erreure, chemin contient toujours le chemin du fichier, il n'est pas null.

  4. #4
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    et en pas à pas tu n'as pas trouvé quel élément était null ? Car le message est clair tu as un élément null et tu fais un "Null.QuelqueChose" ce qui ne peut pas marcher.

    Franchement, seul le pas à pas t'aidera à trouver ce qui est null. ensuite à toi de remonter à l'origine de l'erreur.
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    En mode pas à pas, arriver à l'erreure j'inspecte :

    • sshCp et chemin, les deux qui sont ici appeler.

    • chemin contient bien ce qui doit lui correspondre et sshCp contient les
      informations du connect qui est juste avant.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est SharpSSH la lib que tu utilises ? Elle est assez buggée, c'est pas impossible que le problème soit interne à la lib...

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Voici la lib utilisée :

    1. Tamir.SharpSSH.dll

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    c'est peut être le chemin.Replace("\\","{{{") qui te génère l'erreur

  9. #9
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    j'y ai pensé aussi, mais même en le changeant, rien n'y fait.

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    si tu fais ça t'as toujour une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sshCp.Put(chemin, chemin);
    ou même
    sshCp.Put(@chemin, @chemin);
    Le put sert à quoi déplacer un fichier d'un répertoire à un autre ?
    si c'est le cas peut être c'est parce que t'essaye de mettre ton fichier dans un dossier qui n'existe pas sur le serveur

  11. #11
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Non, ca ne marche pas.

    Le put dans ce cas, sert a copier les fichiers sur le serveur sftp pour une sauvegarde.
    J'ai essayer de creer un dossier "save1" sur mon serveur et ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sshCp.Put(@chemin, @"ftp:\\*chemin*\\Save1\\");
    et 
    sshCp.Put(chemin, "ftp:\\*chemin*\\Save1\\");
    L'erreur reste inchanger.

  12. #12
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    tu peux essayé ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sshCp.Put(@chemin, "test.txt");
    remplace l'extension par l'extension de ton fichier

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Quelle est la valeur de chemin ? C'est un chemin absolu ? relatif ?

  14. #14
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    @youtpout978 : Non, ce ne marche toujours, j'y avais aussi pensé.

    @tomlev : Etant encore débutant, voici ce qu'il contient :"c:\\FichiersLocal\\HDASRSD.inf"

    Edit1 : Absolut donc il me semble :p

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par meldt Voir le message
    @tomlev : Etant encore débutant, voici ce qu'il contient :"c:\\FichiersLocal\\HDASRSD.inf"
    OK, donc quand tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sshCp.Put(chemin, chemin.Replace("\\","{{{"));
    Ca fait en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sshCp.Put("c:\\FichiersLocal\\HDASRSD.inf", "c:{{{FichiersLocal{{{HDASRSD.inf");
    Déjà je comprends pas trop pourquoi tu mets "{{{"... et d'autres part, ça m'étonnerait que ce soit un chemin valide sur le serveur

  16. #16
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par tomlev Voir le message
    OK, donc quand tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sshCp.Put(chemin, chemin.Replace("\\","{{{"));
    Ca fait en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sshCp.Put("c:\\FichiersLocal\\HDASRSD.inf", "c:{{{FichiersLocal{{{HDASRSD.inf");
    Déjà je comprends pas trop pourquoi tu mets "{{{"... et d'autres part, ça m'étonnerait que ce soit un chemin valide sur le serveur
    Oui c'est en effet le cas et c'est pour cela que j'ai remplacé, plus haut dans mes réponses par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sshCp.Put(chemin, "ftp:\\*chemin*\\Save1\\");
    Mais l'erreur ne change pas.

    J'ai essayer ensuite avec l'appli test qui est fourni avec le projet de la lib



    Je cherche encore d'ou cela pourrait-il provenir mais j'en vien au resultat que le problème provient surement de la lib.

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il ne faut pas inclure "ftp://" dans le chemin... le chemin de destination doit avoir cette forme : "/dossier1/dossier2/.../fichier"

  18. #18
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Je viens de refaire le test avec les directives que tu m'as donné:

    Ca donne :

    /ftp.------.fr/save1/Fichier.ext

    Toujours la même erreur :s

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Mais pourquoi tu veux absolument inclure l'adresse du serveur ? Tu l'as déjà spécifiée dans le constructeur de Sftp ; le chemin à passer en paramètre est relatif au serveur, dans ton cas c'est juste "/save1/Fichier.ext"

  20. #20
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Je ne suis pas si bête que ça, je l'ai fait aussi mais rien n'y change ^^

    Je pense avoir trouver ce qui ne va pas mais je serais quoi que demain, je vous tien au courant

    Merci à vous en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Multicast] Transferer des fichiers vers plusieurs postes
    Par johnson95 dans le forum Réseau
    Réponses: 1
    Dernier message: 17/06/2010, 21h04
  2. Réponses: 3
    Dernier message: 01/03/2007, 10h18
  3. [PORTLET] Envoie fichier vers serveur
    Par sammm dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 29/11/2006, 10h35
  4. [FTP] Accès fichiers sur serveur distant
    Par Mystic eyes dans le forum Langage
    Réponses: 23
    Dernier message: 07/07/2006, 17h06
  5. existence d'un fichier sur serveur distant
    Par Fabouney dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 17/01/2006, 10h18

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