日期:2014-05-17  浏览次数:21369 次

winform 在局域网上如何将本机的文件上传到指定的一台电脑上
在局域网上如何将本机的文件上传到指定的一台电脑上,我想在本机做个客户端,可是指定的那台电脑是不需要做任何事的。

本机运行该软件就可以自动的将本机更新的文件上传到指定的电脑上。

如果也有详细的代码,还请高手借来参考参考。
------最佳解决方案--------------------
如果想用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");
    }
}


------其他解决方案--------------------
最简单的就是局域网共享
比如另一台电脑是:\\192.168.0.3\d$共享着
你这接File.Copy(源文件,目标文件)就行了
------其他解决方案--------------------
可以通过共享文件夹,不推荐
通过ftp吧,或者做个通信程序,通过socket传输也可以
------其他解决方案--------------------
最简单的是通过共享目录,然后创建映射,直接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


------其他解决方案--------------------
http://www.codeproject.com/KB/IP/ftp.aspx

源文件,自己下载研究吧。