winform 在局域网上如何将本机的文件上传到指定的一台电脑上在局域网上如何将本机的文件上传到指定的一台
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
源文件,自己下载研究吧。
[其他解释]
socket文件传输
[其他解释]
把另一台机器共享,设置读写权限,本机映射
还有就是socket传送
[其他解释]
现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗??
只要能通过网络共享传文件就可以使用最简单的File.Copy()操作即可。
如果不能的话就通过FTP。
如果对代码较熟悉,个人推荐使用FTP,多线程和断点续传可以做的更好。
如果不太熟悉,就推荐使用File.Copy(),代码简单效率也不错,因为局域网传输可以忽略那点不稳定因素
[其他解释]
我没有接触过这些,能否给点例子,或者详细说明下,有相关资料吗?我在网上没找到
[其他解释]那你就用ftp吧,百度“c# ftp”
[其他解释]但目标目录要开放写权限。
[其他解释]要对该电脑启用共享才可以,不然是写不进去的!
[其他解释]共享、开放权限
[其他解释]一个服务器端,一个客户端。发送---接收。
[其他解释]该回复于2011-03-08 11:31:05被版主删除
[其他解释]一般使用共享目录比较简单一些。不过要注意要有修改权限。
[其他解释]如果只是局域网内增删文件的话 4楼的做法是最方便的
直接COPY
先File.Exists 判断是否存在
然后 File.Copy
[其他解释]如果不是用ftp 而是在设置共享,有代码例子吗?谢谢
[其他解释]有代码例子参考吗?
[其他解释]CS调Webservice,传递byte[]过去,然后转化过来,或者.NET remonting。
[其他解释]杀鸡用牛刀了呵呵~~~~~~~~~C/S程序的可移植性够差的了,再弄个服务端更费劲~~~~~~~
[其他解释]额,这就是例子:
File.Copy(源,目标,参数);
你如果不太理解局域网传输,你可以这样理解:
把目标机驱动器映射本地驱动器,如盘符为z:
你在本地拷贝文件的时候可以用
File.Copy(源,"z:\文件名",true);
这就ok了
只是个理解问题,其实就和操作本地文件一样的呵呵。
[其他解释]WebClient
[其他解释]现在出现一个问题 就是要将操作系统Unix的文件备份到那台电脑不知道之前的方法可行吗??
[其他解释]不好意思,我没说清楚 我是说两台电脑的操作系统不同 不知道可否跨平台
[其他解释]不好意思,我没说清楚 我是说两台电脑的操作系统同 不知道可否跨平台
[其他解释]PS: 为什么不动手实践一下。
[其他解释]lz 你查查UNC文件。只要源机器在局域网内开放了共享目录,就能通过net use创建本地映射,不管那边是什么操作系统。然后直接用File.Copy。
BTW: 如果只是备份文件,也用不了写.net程序,Unix的shell脚本,windows的bat或者vbs都可以完成任务。还可以利用系统任务做定时处理。
你可以:
PUSH: unix(shell) -> windows(共享目录)
PULL: unix(共享目录) -> windows(bat/vbs/.net exe)
[其他解释]共享文件夹里复制到本地可以。
本地复制到共享:拒绝访问。
求解释。(鼠标复制可以)
[其他解释]共享 分配权限 然后 和本地拷贝一样