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 :

Transfert de Fichier


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut Transfert de Fichier
    Bonjour,

    Je developpe une application en c# qui a besoin de récuperer des fichiers .TXT sur une machine distante. Pour accéder à cette machine je dispose d'un identifiant et d'un mot de passe. Ces fichiers sont déposés dans un repertoire particulier.

    Je voudrais savoir si quelqu'un peut m'aider à récuperer ces fichiers car je n'ai aucune idée de la manière dont je doit procéder.

    Merci d'avance

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Quel est l'environnement de ta machine distante ? OS Microsoft ? Linux ? Unix ? Ce répertoire particulier est-il un répertoire partagé ?

    Plus tu donneras de détails, plus ce sera facile de t'aider

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut
    Alors les deux machines sont sous Windows XP. Non ce n'est pas un repertoire partager. En fait je voulais tout simplement deplacer les fichier present dans ce repertoire sur le repertoire de la machine qui contient l'application.

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413

  5. #5
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Hum, je ne suis pas certain que File.Copy fonctionne immédiatement dans son cas dans la mesure où sa machine distante ne dispose pas de répertoire partagé...

    Le plus simple, je pense, dans la mesure où tu disposes d'un login / mdp sur la machine distante (mais à condition que ce compte bénéficie des privilèges admin), c'est de créer un partage toi même en WMI sur ta machine distante, de copier tes fichiers avec File.Copy, puis de supprimer ce partage.

    Pour cela :

    Bon courage

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Oups !

    Tu a raison, j'avais oubliè ce problème de droits d'access

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut
    Qu'est ce que tu appelle créer un partage en WMI? Je suis désolé je ne suis pas un pro non plus

  8. #8
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.
    Qu'est ce que tu appelle créer un partage en WMI? Je suis désolé je ne suis pas un pro non plus
    Pas de souci, le forum est fait pour s'entraider Alors, si on résume ton problème, tu as besoin de copier des fichiers depuis une machine distante. Une méthode pour accéder à ces fichiers consiste à disposer d'un répertoire partagé sur cette machine distante.

    En général, le plus simple pour créer un partage c'est de faire un clic droit sur un dossier et d'aller dans l'onglet "Partage" (ou "Share"). Mais comme dans ton cas, tu veux automatiser le traitement, tu as besoin de créer ce partage sur le répertoire via le code de ton application... ce que te permet de faire [ame="http://fr.wikipedia.org/wiki/Windows_Management_Instrumentation"]WMI[/ame]

    Pour t'aider à découvrir WMI, tu peux utiliser l'outil WMICodeCreator qui génère du code WMI, tu pourras ainsi tester facilement la création d'un partage à distance

    En espérant que ça t'aura aidé à comprendre. Bon courage

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut
    Alors je pense peut etre que je me suis mal exprimé je vais reprendre. Là je viens de créer le partage de mon repertoire manuellement ce n'est le fait de pouvoir le partagé qui me derange. Il peut le rester cela ne dérange en rien.
    Si j'ai bien compris voici le bout de code que je avoir pour copier mon fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.Copy(@"\\FREV1099\ftp\EDT\IN\DE_EDT\*.txt",@"C\tonFichierACopier.txt");


    Mais maintenant il me sort l'érreur que le format du file Path n'est pas correct... que faire?

    Désolé d'insister ...

  10. #10
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    C'est normal que ça ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.Copy(@"\\FREV1099\ftp\EDT\IN\DE_EDT\*.txt",@"C\tonFichierACopier.txt");
    C'est le * qu'il n'accepte pas, c'est fichier par fichier obligatoirement. Un petit exemple qui permet de copier tous les fichiers (mais pas les fichiers des sous dossiers) :
    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
     
    try {
       // Test de l'existence du partage
       if (Directory.Exists(@"\\taMachineDistante\tonPartage")) {
          FileInfo tempFileInfo = null;
          foreach (string tempFile in Directory.GetFiles(@"\\taMachineDistante\tonPartage")) {
             tempFileInfo = new FileInfo(tempFile);
             // Permet par exemple de copier \\taMachineDistante\tonPartage\toto.txt dans C:\tonPathLocal\toto.txt
             File.Copy(tempFile, Path.Combine(@"C:\tonPathLocal", tempFileInfo.Name));
          }
       }
    }
    catch (Exception exception) {
       // ...
    }
    Bon courage

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut Re tit soucis
    Rebonjour,

    Désolé j'avais mis un peu ce sujet de côté je viens de tester la commande pour l'existence du repertoire et mon programme ne voit pas le repertoir de la machine distante. Je crois plutot qu'il ne la voit pas tout court ...

    Que faire???

  12. #12
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    mon programme ne voit pas le repertoir de la machine distante.
    Je crois plutot qu'il ne la voit pas tout court ...
    Quelle est la différence pour toi entre "il ne le voit pas" et "il ne le voit pas tout court"

    Et avec l'explorateur Windows tu le vois ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut
    Alors avec la connexion au bureau à distance ( outils microsoft) cela fonctionne je peux me connecter dessus et y prendre des fichiers.

    Ce que j'entends par ne pas le voir c'est que le le if Exists me retourne false et en changeant le chemin d'accès et en mettant juste le nom de la machine distante pareil...
    Donc je ne sais pas ce que ce je peux faire ...

  14. #14
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Donc je ne sais pas ce que ce je peux faire ...
    Déja montrer la commande exacte que tu emploie aiderait a t'aider

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut
    En fait la commande que j'utilise est juste au dessus je la remet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (Directory.Exists(@"\\FREV1099\E:\data\ftp\EDT\IN\DE_EDT"))
                {
                    System.Console.WriteLine("Hello World");
    }
    Je fais juste un test sur l'existence mais je ne rentre pas dans la clause IF

  16. #16
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Ton path est incorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Directory.Exists(@"\\FREV1099\E:\data\ftp\EDT\IN\DE_EDT"))
    Si tu as partagé tout ton lecteur E (ce qui m'étonnerait ), alors ce serait ('$' à la place de ':') :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Directory.Exists(@"\\FREV1099\E$\data\ftp\EDT\IN\DE_EDT"))
    Sinon, le fonctionnement d'un partage est le suivant :
    • tu choisis par exemple de partager le répertoire E:\TOTO\TITI
    • tu lui donnes l'alias MON_PARTAGE
    • tu y accèdes de la façon suivante : \\nomDeLaMachine\MON_PARTAGE

    Voilà, je pense que ça marchera beaucoup mieux

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut
    Hey hey,

    Merci beaucoup pour votre précieuse aide je me coucherai moin bête ce soir, en effet j'avais oublié de partager le dernier répertoire ^^ tête en l'air

    Encore merci

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 15/05/2007, 18h35
  2. transfert de fichier P2P : connexion ????
    Par Stephen54 dans le forum Développement
    Réponses: 8
    Dernier message: 11/02/2005, 00h31
  3. Transfert de fichiers par sockets
    Par Kaori dans le forum C++
    Réponses: 19
    Dernier message: 26/01/2005, 13h58
  4. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 17h53
  5. [Socket]Transfert de fichier
    Par Aminos dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 19/04/2003, 13h58

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