2010-05-05 9 views
0

Je peux obtenir le nom de fichier via les codes ci-dessous. Comment puis-je envoyer ce fichier à un ordinateur distant. cette adresse IP de l'ordinateur distant: 192.168.2.105 aussi je peux utiliser le port 51124Comment envoyer un fichier à un ordinateur distant?

class Program 
    { 
     static void Main(string[] args) 
     { 

      string[] dosyalarinYollari = System.IO.Directory.GetFiles(@"z:\20071008\1.2.392.200036.9116.2.6.1.48.1215563310.1191800303.305777\", "*.dcm", System.IO.SearchOption.AllDirectories); 
      foreach (string s in dosyalarinYollari) 
      { 
       Console.Write(s+"\n"); // i need to send tihs s file to remote machine 
      } 

      Console.ReadKey(); 
     } 
    }

Répondre

1

simple File.Copy passant l'emplacement que @ "\ [ip] [lecteur] $ [dossier]" est suffisant pour l'envoyer à un ordinateur distant si vous avez le droit de vous connecter à cet ordinateur.

Je ne suis pas vraiment sûr de la chaîne de localisation.

+0

Ne pas ce fichier besoin et le partage d'imprimante à installer et le lecteur à partager correctement? –

+1

@Adrian Grigore: Oui, c'est le cas, mais l'OP n'a pas dit quel protocole utiliser. @GxG: Il vous manque des barres obliques inverses dans votre chemin, et l'utilisation d'un partage administratif comme 'c $' nécessite des permissions administratives sur l'hôte distant. –

+0

Si vous êtes connecté en tant qu'administrateur, vous pouvez transférer sans problème si vous êtes l'administrateur sur tous les ordinateurs. Si vous utilisez de nouveau la connexion réseau, cela ne pose pas vraiment de problème, mais vous risquez de rencontrer une erreur de connexion. Il n'y a pas de solution pour cela, juste une solution de contournement: avant que le transfert exécute un Process.Start avec cette commande: net use \\ machinenameorip \ driveletter $/user: domaine \ nom d'utilisateur mot de passe – GxG

5

Il n'y a pas assez d'informations ici pour vous donner une réponse définitive, mais je peux citer quelques approches. Il existe plusieurs façons de transférer des fichiers entre ordinateurs, chacun avec ses avantages et ses inconvénients.

  • Partage de fichiers Windows. Comme indiqué par GxG, s'il s'agit d'un environnement Windows (ou SMB) et que vous avez les autorisations nécessaires, et que le partage de fichiers est activé, vous pouvez essayer \\ipaddress\share\filename.
  • Si la machine distante est sur Internet, ou si le partage de fichiers n'est pas disponibles, les protocoles tels que FTP sont conçus pour télécharger des fichiers sur une machine distante, mais la machine distante devra exécuter un serveur FTP. .Net a un support natif pour FTP (depuis .Net 2.0)
  • Vous pouvez rouler votre propre écouteur qui écoute les connexions sur la machine cible, et reçoit le flux de fichier binaire et l'écrit sur le disque.
  • Si vous pouvez vous connecter à la machine distante via SSH, vous pouvez lancer un appel SCP pour télécharger le fichier
  • S'il s'agit d'un environnement avec des partages NFS (par exemple, la machine distante est peut-être un serveur UNIX) pourrait monter dans NFS et copier.

Certaines solutions sont plus faciles que d'autres. Certains nécessitent que la machine cible exécute un serveur. Certains sont Windows uniquement, Unix seulement, etc, etc.

Pouvez-vous nous donner plus d'informations sur votre environnement, pourquoi vous avez besoin de le faire, etc.

+0

à en juger par l'ip, il veut l'envoyer via une connexion intranet et à en juger par le code, il utilise des formulaires C# est donc un environnement Windows. FTP est également disponible sur l'intranet, mais il est beaucoup plus compliqué, et SSH est un bon choix si la sécurité est un problème. Pour Win à Unix j'utiliserais SSH, mais je pense que mon approche fonctionnerait aussi (jamais essayé mais en théorie tout est fait sur le Transport Layer du réseau donc l'OS ne serait pas un problème) – GxG

+0

@GxG: En fait l'adresse IP semble appartenir à un réseau local. 192.168.0.0 - 192.168.255.255 est réservé aux réseaux locaux. –

+0

intranet = à l'intérieur d'un réseau généralement fait en utilisant un routeur => les ips 192.168.xxx.xxx qui viennent par défaut sur la plupart des routeurs, ou en utilisant un commutateur auquel cas les ips seraient (par défaut) 10.xxx.xxx. xxx – GxG

Questions connexes