winform 在局域网上如何将本机的文件上传到指定的一台电脑上 在局域网上如何将本机的文件上传到指定的一台电脑上,我想在本机做个客户端,可是指定的那台电脑是不需要做任何事的。本机运行该软件就可以自动的将本机更新的文件上传到指定的电脑上。如果也有详细的代码,还请高手借来参考参考。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以通过共享文件夹,不推荐通过ftp吧,或者做个通信程序,通过socket传输也可以 那你就用ftp吧,百度“c# ftp” 最简单的就是局域网共享比如另一台电脑是:\\192.168.0.3\d$共享着你这接File.Copy(源文件,目标文件)就行了 最简单的是通过共享目录,然后创建映射,直接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源文件,自己下载研究吧。 如果想用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"); }} 如果只是局域网内增删文件的话 4楼的做法是最方便的 直接COPY先File.Exists 判断是否存在 然后 File.Copy 如果不是用ftp 而是在设置共享,有代码例子吗?谢谢 CS调Webservice,传递byte[]过去,然后转化过来,或者.NET remonting。 额,这就是例子:File.Copy(源,目标,参数);你如果不太理解局域网传输,你可以这样理解:把目标机驱动器映射本地驱动器,如盘符为z:你在本地拷贝文件的时候可以用File.Copy(源,"z:\文件名",true);这就ok了只是个理解问题,其实就和操作本地文件一样的呵呵。 把另一台机器共享,设置读写权限,本机映射还有就是socket传送 现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗?? 现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗??只要能通过网络共享传文件就可以使用最简单的File.Copy()操作即可。如果不能的话就通过FTP。如果对代码较熟悉,个人推荐使用FTP,多线程和断点续传可以做的更好。如果不太熟悉,就推荐使用File.Copy(),代码简单效率也不错,因为局域网传输可以忽略那点不稳定因素 lz 你查查UNC文件。只要源机器在局域网内开放了共享目录,就能通过net use创建本地映射,不管那边是什么操作系统。然后直接用File.Copy。BTW: 如果只是备份文件,也用不了写.net程序,Unix的shell脚本,windows的bat或者vbs都可以完成任务。还可以利用系统任务做定时处理。你可以:PUSH: unix(shell) -> windows(共享目录)PULL: unix(共享目录) -> windows(bat/vbs/.net exe) c#怎么打开有不可读取的内容的Excel文件 如何在WPF中设置系统颜色 请问这句赋值语句什么意思? 如何让treeview 在窗体启动时,就选中第三项呢? 不使用析构函数的话,在类中如何知道 实例已经退出可以释放资源(比如断开数据库)和保存缓存的数据了? TreeView中动态增加子节点 类、结构或接口方法必须有返回类型 问题,,急.在线等 小菜提问 移动文件夹问题,怎么不能从不同的区中移动 浏览文件目录的控件 WPF中关于模态窗口的数据传递 mapxtreme问题
通过ftp吧,或者做个通信程序,通过socket传输也可以
比如另一台电脑是:\\192.168.0.3\d$共享着
你这接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
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");
}
}
直接COPY
先File.Exists 判断是否存在
然后 File.Copy
如果不是用ftp 而是在设置共享,有代码例子吗?谢谢
额,这就是例子:
File.Copy(源,目标,参数);你如果不太理解局域网传输,你可以这样理解:
把目标机驱动器映射本地驱动器,如盘符为z:
你在本地拷贝文件的时候可以用
File.Copy(源,"z:\文件名",true);
这就ok了只是个理解问题,其实就和操作本地文件一样的呵呵。
还有就是socket传送
现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗??
如果不能的话就通过FTP。如果对代码较熟悉,个人推荐使用FTP,多线程和断点续传可以做的更好。
如果不太熟悉,就推荐使用File.Copy(),代码简单效率也不错,因为局域网传输可以忽略那点不稳定因素
PUSH: unix(shell) -> windows(共享目录)
PULL: unix(共享目录) -> windows(bat/vbs/.net exe)