附加:我是用这个getfilelist来判断ftp服务器有没有指定名字的文件夹?如果当ftp服务器存在这个文件夹的时候却执行到刚才的地方就出现错误
解决方案 »
- windows forms编程如何实现选项卡的功能
- 为什么我的htmlbutton作为服务器控件运行后,不会执行服务器代码?无反应!
- 数据访问与读取的问题
- web.config 配置 页面信息显示与不显示
- 字符串反转(StrReverse)
- webform treeview 右键点击 显示菜单改怎么做啊?
- 求获得一个DataSet后更新数据库的多种方案(100分)不够再给分!
- C# 怎么打印联纸?位置怎么调整?
- 求大神帮忙,C#写一个程序监测sql server2005数据库某一个表的变化,并获取
- 请教:关于浏览器登录的问题
- [求助]ftp登陆账户跟密码的设置
- 条形码打印如何实现? 有的用的AxBARCODELib,这个东西可以从哪找到?
这个代码我用过,不过传输图片文件不是特别理想,不知道你测试过没有?我用它传输gif文件的时候非常慢。所以现在我在用这个socket传输来看看速度能否提高点。
------------------------------------------------------------------------------------------
庆祝MSProject开源技术( http://bbs.msproject.cn/ )注册会员过1000
你给的那个代码早就用过了,不知道你自己用过没有?我用的时候用它传输gif文件的时候非常慢
不知道你怎么解决这个问题,特别是一次传输至少1000个文件!
比如就登陆一次,等等最好加上多线程传输功能。
private void Upload(string filename)
{
FileInfo fileInf = new FileInfo(filename);
string uri = "ftp://192.168.168.239/" + fileInf.Name;
FtpWebRequest reqFTP; // 根据uri创建FtpWebRequest对象
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://192.168.168.239/" + fileInf.Name)); // ftp用户名和密码
reqFTP.Credentials = new.NetworkCredential("cy23948","23948"); // 默认为true,连接不会被关闭
// 在一个命令之后被执行
reqFTP.KeepAlive = false; // 指定执行什么命令
reqFTP.Method = WebRequestMethods.Ftp.UploadFile; // 指定数据传输类型
reqFTP.UseBinary = true; // 上传文件时通知服务器文件的大小
reqFTP.ContentLength = fileInf.Length; // 缓冲大小设置为2kb
int buffLength = 2048; byte[] buff = new byte[buffLength];
int contentLen; // 打开一个文件流 (System.IO.FileStream) 去读上传的文件
FileStream fs = fileInf.OpenRead();
try
{
// 把上传的文件写入流
Stream strm = reqFTP.GetRequestStream(); // 每次读文件流的2kb
contentLen = fs.Read(buff, 0, buffLength); // 流内容没有结束
while (contentLen != 0)
{
// 把内容从file stream 写入 upload stream
strm.Write(buff, 0, contentLen); contentLen = fs.Read(buff, 0, buffLength);
} // 关闭两个流
strm.Close();
fs.Close();
}
catch (Exception ex)
{
Response.Write("错误");
}
}