c# winform ftp上传文件到服务器,C# winform程序 如何向ftp文件服务器下传文件? 。...

当前位置:我的异常网» C# » C# winform程序 如何向ftp文件服务器下传文件? 。

C# winform程序 如何向ftp文件服务器下传文件? 。

www.myexceptions.net  网友分享于:2015-08-26  浏览:243次

C# winform程序 怎么向ftp文件服务器上传文件?? 在线等。。。

C# winform程序 怎么向ftp文件服务器上传文件?

我用的方法:System.IO.File.Move(sourcepath, @"ftp:\\177.19.1.8\kaikake\TEST\" + filename);

(比如ftp:\\177.19.1.8\kaikake\TEST\是一文件服务器地址)

但是 提示错误信息: 不支持这种路径格式 应该怎么写?? 请高人指教!! 谢谢了

还需要在程序中设置登陆名和密码吗? 如果需要,应该怎么设置?

------解决方案--------------------

在.net 2.0 中添加了对许多ftp的支持,使用ftp变得非常简单了。

首先,WebClient支以已经开始支持ftp协议了。

比如说要从远程服务器上下载文件,只要使用两条命令就可以完成。

WebClient webClient = new WebClient();

webClient.DownloadFile("ftp://username:password@192.168.1.1/123.txt", @"f:\123.txt");

上传文件到远程服务器也是一样简单。

WebClient webClient = new WebClient();

webClient.UploadFile("ftp://username:password@192.168.1.1/456.txt", @"f:\123.txt");

------解决方案--------------------

//ftp方式上传

public static int UploadFtp(string filePath, string filename, string ftpServerIP, string ftpUserID, string ftpPassword)

{

FileInfo fileInf = new FileInfo(filePath + "\\" + filename);

string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;

FtpWebRequest reqFTP;

// Create FtpWebRequest object from the Uri provided

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));

try

{

// Provide the WebPermission Credintials

reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);

// By default KeepAlive is true, where the control connection is not closed

// after a command is executed.

reqFTP.KeepAlive = false;

// Specify the command to be executed.

reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

// Specify the data transfer type.

reqFTP.UseBinary = true;

// Notify the server about the size of the uploaded file

reqFTP.ContentLength = fileInf.Length;

// The buffer size is set to 2kb

int buffLength = 2048;

byte[] buff = new byte[buffLength];

int contentLen;

// Opens a file stream (System.IO.FileStream) to read the file to be uploaded

//FileStream fs = fileInf.OpenRead();

FileStream fs = fileInf.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

// Stream to which the file to be upload is written

Stream strm = reqFTP.GetRequestStream();

// Read from the file stream 2kb at a time

contentLen = fs.Read(buff, 0, buffLength);

// Till Stream content ends

while (contentLen != 0)

{

// Write Content from the file stream to the FTP Upload Stream

strm.Write(buff, 0, contentLen);

contentLen = fs.Read(buff, 0, buffLength);

}

// Close the file stream and the Request Stream

strm.Close();

fs.Close();

return 0;

}

catch (Exception ex)

{

reqFTP.Abort();

Logging.WriteError(ex.Message + ex.StackTrace);

return -2;

}

}

//ftp方式下载

文章评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值