在局域网上如何将本机的文件上传到指定的一台电脑上,我想在本机做个客户端,可是指定的那台电脑是不需要做任何事的。本机运行该软件就可以自动的将本机更新的文件上传到指定的电脑上。如果也有详细的代码,还请高手借来参考参考。

解决方案 »

  1.   

    可以通过共享文件夹,不推荐
    通过ftp吧,或者做个通信程序,通过socket传输也可以
      

  2.   

    那你就用ftp吧,百度“c# ftp”
      

  3.   

    最简单的就是局域网共享
    比如另一台电脑是:\\192.168.0.3\d$共享着
    你这接File.Copy(源文件,目标文件)就行了
      

  4.   

    最简单的是通过共享目录,然后创建映射,直接File.Copy参考:
    http://www.cnblogs.com/h2appy/archive/2008/05/21/1204277.htmlhttp://topic.csdn.net/u/20110304/08/ef35f180-b495-4adf-9f3b-0eb6023972ea.html
      

  5.   

    http://www.codeproject.com/KB/IP/ftp.aspx源文件,自己下载研究吧。
      

  6.   

    如果想用FTP也很方便,不过要在目标计算机上开启FTP服务,这样操作起来可能要比共享方式的File.Copy麻烦些。使用FTP方式的方法:
    1,在目标机安装FTP服务
    2,写程序,附主要代码:private void Upload(string filename)
    {
      FileInfo fileInf = new FileInfo(filename);
      string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
      FtpWebRequest reqFTP;
        
      reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(
                "ftp://" + ftpServerIP + "/" + fileInf.Name));  reqFTP.Credentials = new NetworkCredential(ftpUserID,  ftpPassword);
        
      reqFTP.KeepAlive = false;  reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
        
      // 使用二进制传输流.
      reqFTP.UseBinary = true;  reqFTP.ContentLength = fileInf.Length;  // 将缓冲区大小设置为 2kb
      int buffLength = 2048;
      byte[] buff = new byte;
      int contentLen;
        
      FileStream fs = fileInf.OpenRead();
       
      try
      {
            Stream strm = reqFTP.GetRequestStream();
            
            contentLen = fs.Read(buff, 0, buffLength);
            
            while (contentLen != 0)
            {
                // 通过FTP上传流
                strm.Write(buff, 0, contentLen);
                contentLen = fs.Read(buff, 0, buffLength);
            }
            
            // 用完了流要关闭
            strm.Close();
            fs.Close();
      }
      catch(Exception ex)
        {
            MessageBox.Show(ex.Message, "Upload Error");
        }
    }
      

  7.   

    如果只是局域网内增删文件的话  4楼的做法是最方便的 
    直接COPY
    先File.Exists 判断是否存在 
    然后 File.Copy   
      

  8.   


    如果不是用ftp  而是在设置共享,有代码例子吗?谢谢
      

  9.   

    CS调Webservice,传递byte[]过去,然后转化过来,或者.NET remonting。
      

  10.   


    额,这就是例子:
    File.Copy(源,目标,参数);你如果不太理解局域网传输,你可以这样理解:
    把目标机驱动器映射本地驱动器,如盘符为z:
    你在本地拷贝文件的时候可以用
    File.Copy(源,"z:\文件名",true);
    这就ok了只是个理解问题,其实就和操作本地文件一样的呵呵。
      

  11.   

    把另一台机器共享,设置读写权限,本机映射
    还有就是socket传送
      

  12.   


    现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗??
      

  13.   

    现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗??只要能通过网络共享传文件就可以使用最简单的File.Copy()操作即可。
    如果不能的话就通过FTP。如果对代码较熟悉,个人推荐使用FTP,多线程和断点续传可以做的更好。
    如果不太熟悉,就推荐使用File.Copy(),代码简单效率也不错,因为局域网传输可以忽略那点不稳定因素
      

  14.   

    lz 你查查UNC文件。只要源机器在局域网内开放了共享目录,就能通过net use创建本地映射,不管那边是什么操作系统。然后直接用File.Copy。BTW: 如果只是备份文件,也用不了写.net程序,Unix的shell脚本,windows的bat或者vbs都可以完成任务。还可以利用系统任务做定时处理。你可以:
    PUSH: unix(shell)   -> windows(共享目录)
    PULL: unix(共享目录) -> windows(bat/vbs/.net exe)