C# 如何将文件发送到远程计算机?

C# 如何将文件发送到远程计算机?,c#,.net,visual-studio,visual-studio-2008,C#,.net,Visual Studio,Visual Studio 2008,我可以通过下面的代码获得文件名。如何将此文件发送到远程计算机。这个远程计算机ip:192.168.2.105我也可以使用51124端口 class Program { static void Main(string[] args) { string[] dosyalarinYollari = System.IO.Directory.GetFiles(@"z:\20071008\1.2.392.200036.9116.2.6.

我可以通过下面的代码获得文件名。如何将此文件发送到远程计算机。这个远程计算机ip:192.168.2.105我也可以使用51124端口

   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();
        }
    }

一个简单的文件。复制将位置作为@“\[ip][drive]$[folder]”传递足以将其发送到远程计算机(如果您有权登录到该计算机)


我不太确定位置字符串。

一个简单的文件。复制将位置作为@“\[ip][drive]$[folder]”传递足以将其发送到远程计算机(如果您有权登录到该计算机)


我不太确定位置字符串。

这里没有足够的信息给你一个明确的答案,但我可以提到一些方法。在计算机之间传输文件有很多种方法,每种方法都有优缺点

  • Windows文件共享。如GxG所述,如果这是Windows(或SMB)环境,并且您具有必要的权限,并且启用了文件共享,则可以尝试
    \\ipaddress\share\filename.
  • 如果远程计算机通过internet,或者文件共享不可用,则FTP等协议设计用于将文件上载到远程计算机,但远程计算机需要运行FTP服务器。Net具有对FTP的本机支持(自.Net 2.0以来)
  • 您可以滚动自己的侦听器,侦听目标计算机上的连接,并接收二进制文件流并将其写入磁盘
  • 如果您可以通过SSH连接到远程机器,那么可以考虑调用SCP来上载文件
  • 如果这是一个具有NFS共享的环境(例如,远程计算机可能是UNIX服务器),则可以在NFS中装载并复制
有些解决办法比其他办法容易。有些要求目标计算机运行服务器。有些是仅限Windows、仅限Unix等


你能给我们更多关于你的环境的信息,为什么你需要这样做,等等。

这里没有足够的信息给你一个明确的答案,但我可以提到一些方法。在计算机之间传输文件有很多种方法,每种方法都有优缺点

  • Windows文件共享。如GxG所述,如果这是Windows(或SMB)环境,并且您具有必要的权限,并且启用了文件共享,则可以尝试
    \\ipaddress\share\filename.
  • 如果远程计算机通过internet,或者文件共享不可用,则FTP等协议设计用于将文件上载到远程计算机,但远程计算机需要运行FTP服务器。Net具有对FTP的本机支持(自.Net 2.0以来)
  • 您可以滚动自己的侦听器,侦听目标计算机上的连接,并接收二进制文件流并将其写入磁盘
  • 如果您可以通过SSH连接到远程机器,那么可以考虑调用SCP来上载文件
  • 如果这是一个具有NFS共享的环境(例如,远程计算机可能是UNIX服务器),则可以在NFS中装载并复制
有些解决办法比其他办法容易。有些要求目标计算机运行服务器。有些是仅限Windows、仅限Unix等


你能给我们更多关于你的环境的信息,为什么你需要这样做,等等。

这不需要安装文件和打印机共享以及正确共享驱动器吗?@Adrian Grigore:是的,需要,但OP没有告诉我们要使用什么协议@GxG:您的路径中缺少一些反斜杠,使用管理共享(如
c$
)需要远程主机上的管理权限。如果您以管理员身份登录,如果您是所有计算机上的管理员,则可以毫无问题地进行传输。如果您再次使用网络登录,问题不大,但您可能会遇到登录错误。没有解决方案,只有一个解决方法:在传输之前运行一个进程。从以下命令开始:net use\\machinenameorip\driveletter$/user:domain\usernamepassword@0xA3很抱歉,要在根目录上复制的\\ip\drive$\文件夹不需要管理权限,只需要读/写权限。@GxG:不,这不正确。访问管理共享(即任何驱动器号+
$
admin$
)需要用户是本地(即远程系统上)管理员组的成员。小心不要将这些内置管理共享与隐藏共享(即名称以$结尾的任何其他共享)混淆。这难道不要求安装文件和打印机共享,并正确共享驱动器吗?@Adrian Grigore:是的,但OP没有说明要使用哪种协议@GxG:您的路径中缺少一些反斜杠,使用管理共享(如
c$
)需要远程主机上的管理权限。如果您以管理员身份登录,如果您是所有计算机上的管理员,则可以毫无问题地进行传输。如果您再次使用网络登录,问题不大,但您可能会遇到登录错误。没有解决方案,只有一个解决方法:在传输之前运行一个进程。从以下命令开始:net use\\machinenameorip\driveletter$/user:domain\usernamepassword@0xA3很抱歉,要在根目录上复制的\\ip\drive$\文件夹不需要管理权限,只需要读/写权限。@GxG:不,这不正确。访问管理共享(即任何驱动器号+
$
admin$
)需要用户是本地(即远程系统上)管理员组的成员。注意不要将这些内置管理共享与隐藏共享(即名称以$结尾的任何其他共享)混淆。从他希望通过intranet连接发送的ip和他使用的C#forms代码判断,因此是Windows环境。FTP也可以在intranet上使用,但它要复杂得多,如果需要,SSH是一个不错的选择