有没有牛人 帮帮我啊 小弟要失业了啊~~~~~~~~!!!!! C# 通过代理访问FTP 服务器 下载 文件注意 是访问FTP 服务器 不是 HTTP 什么代理都行 只要是通过代理访问 就成 帮帮我吧 小弟真的要失业了 这个弄不出了 。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/t/20040618/08/3102208.html http://www.codeproject.com/KB/dotnet/dotnetftp.aspx 从ftp下载文件??我写过一个有dos的和基类方法 /*-------------------------------------------------------------作者:hackztx [别急→慢慢来→总会好的]日期:2008-07-14 08:44:46参数:从ftp下载文件?? 简介:C#-------------------------------------------------------------*/我写过一个有dos的和基类方法 哈哈,失业了,就再找一个。。旧的不去,新的不来。。FTP代理。。听说很难。。 晕 牛人今天都该上班了吧 是 通过代理服务器 访问FTP 服务器 下载文件 我真哭了 期待牛人的出现..... FtpWebRequest.Proxy 具体查msdn 这个我知道 webproxy 实例一个 设置属性 附给 FtpWebRequest.Proxy 但是 FtpWebRequest.Proxy 如果 代理是个ftp服务器的话 会异常的 显示不支持FTP代理. 不知道你是要自已写代理,还是通过代理来访问ftp? 通过代理 访问FTP 终于有人 问到点子上了 帮帮忙吧 以前也没接触过,在网上看到的一些代码,整理了一下.大概思路是建立代理服务器类,通过FtpWebRequest来进行Ftp操作.NetProxy.csusing System;using System.Collections.Generic;using System.Text;using System.Net;using System.IO;namespace WindowsApplication4{ public class NetProxy { string _ProxyAddress = String.Empty; public string ProxyAddress { get { return _ProxyAddress; } } int _ProxyPort = 0; public int ProxyPort { get { return _ProxyPort; } } public NetProxy(string proxyAddress, int proxyPort) { _ProxyAddress = proxyAddress; _ProxyPort = proxyPort; } /// <summary> /// 获得代理服务器 /// </summary> /// <param name="userName">代理用户名</param> /// <param name="userKey">代理用户密码</param> /// <returns></returns> public WebProxy GetProxy(string userName, string userKey) { WebProxy _WP = new WebProxy(ProxyAddress, ProxyPort); //本地地址不使用代理服务器 _WP.BypassProxyOnLocal = true; ICredentials credentials = new NetworkCredential(userName, userKey); _WP.Credentials = credentials; return _WP; } /// <summary> /// 设置全局代理服务 /// </summary> /// <param name="webProxy"></param> public void SetAllProxy(WebProxy webProxy) { WebRequest.DefaultWebProxy = webProxy; } public void Test(string userName, string userKey) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://www.sina.com.cn")); request.Proxy = GetProxy(userName, userKey); request.UserAgent = "Mozilla/4.0"; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.AllowAutoRedirect = true; byte[] str = System.Text.Encoding.ASCII.GetBytes("username=admin"); request.ContentLength = str.Length; Stream temps = request.GetRequestStream(); return true; } catch (WebException ex) { return false; } } }}Ftp.csusing System;using System.Collections.Generic;using System.Text;using System.IO;using System.Net;namespace WindowsApplication4{ public class Ftp { string _ftpServerIP = String.Empty; public string FtpServerIP { get { return _ftpServerIP; } } WebProxy _Proxy = null; public WebProxy Proxy { get { return _Proxy; } } string _ftpUserID = String.Empty; public string FtpUserID { get { return _ftpUserID; } } string _ftpPassword = String.Empty; public string FtpPassword { get { return _ftpPassword; } } public Ftp(string ftpServerIP, string ftpUserID, string ftpPassword, WebProxy webProxy) { _ftpServerIP = ftpServerIP; _ftpUserID = ftpUserID; _ftpPassword = ftpPassword; _Proxy = webProxy; } /// <summary> /// 创建FTP实体 /// </summary> /// <param name="uri">InterNet的URI信息</param> /// <returns>FTP实体</returns> private FtpWebRequest CreatFtp(string uri) { FtpWebRequest _FtpRequest = null; _FtpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri)); //指定文件传输类型 _FtpRequest.UseBinary = true; _FtpRequest.Credentials = new NetworkCredential(FtpUserID, FtpPassword); // 默认为true,连接不会被关闭 // 在一个命令之后被执行 _FtpRequest.KeepAlive = false; //设置代理 _FtpRequest.Proxy = this.Proxy; return _FtpRequest; } /// <summary> /// 上传文件 /// </summary> /// <param name="filename">文件全名称</param> private void Upload(string filename) { FileInfo fileInf = new FileInfo(filename); string uri = "ftp://" + FtpServerIP + "/" + fileInf.Name; FtpWebRequest reqFTP = this.CreatFtp(uri); // 指定执行什么命令 reqFTP.Method = WebRequestMethods.Ftp.UploadFile; // 上传文件时通知服务器文件的大小 reqFTP.ContentLength = fileInf.Length; // 缓冲大小设置为2kb int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; // 打开一个文件流 (System.IO.FileStream) 去读上传的文件 FileStream fs = fileInf.OpenRead(); // 把上传的文件写入流 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(); } /// <summary> /// 下载文件 /// </summary> /// <param name="filePath">路径</param> /// <param name="fileName">文件名称</param> private void Download(string filePath, string fileName) { string uri = "ftp://" + FtpServerIP + "/" + fileName; FtpWebRequest reqFTP = this.CreatFtp(uri); FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create); reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0) { outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize); } ftpStream.Close(); outputStream.Close(); response.Close(); } }} 弄不出来这就开你,LZ老板是不是故意的啊!!要是老板这么苛刻,那就换BOSS 恩,顶一下MATLAB资源分享 Uri ftpUri = new Uri("ftp://192.168.1.50/ligang/安全法.rar"); string ftp = "d.sql"; FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpUri); IWebProxy pWebOroxy = new WebProxy("http://proxyserver:80/", true); ftpRequest.Proxy = pWebOroxy; FtpWebResponse ftpResponse = null; FileStream ftpfile = new FileStream("E:\\WinCE\\FtpCode\\安全法.rar", FileMode.Create); ftpRequest.Credentials = new NetworkCredential("liupeng", "liupeng"); ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile; ftpRequest.UseBinary = true; ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); Stream ftpstream = ftpResponse.GetResponseStream(); byte[] ftpbyte = new byte[2048]; int readcout = 0; readcout = ftpstream.Read(ftpbyte,0,2048); while (readcout > 0) { ftpfile.Write(ftpbyte,0,readcout); readcout = ftpstream.Read(ftpbyte, 0, 2048); } ftpfile.Close(); ftpResponse.Close(); ftpstream.Close(); socket得到的字符串和定义的字符串比对不上 .net C# 查找csv文件里是否有需要的字符串 C# CS架构下ftp断点续传 wpf如何将界面中的控件左移6个像素 c# 读取 word文档内容 C# socket 怎么接收c++传来的字符串 在form2登录后才显示form1应该怎么做 请教directX 的问题? 我在DataSet里添加了一个新的表,我希望用Adapter.update可以将这个表存到数据库中,请问应该如何实现,谢谢 郁闷啊,乱码问题......请会的进来看看 C#的类库到底怎么用啊~~~ 神舟的小本能装VS2005?
有dos的和基类方法
-------------------------------------------------------------
作者:hackztx [别急→慢慢来→总会好的]
日期:2008-07-14 08:44:46
参数:从ftp下载文件??
简介:C#
-------------------------------------------------------------
*/
我写过一个
有dos的和基类方法
FTP代理。。听说很难。。
是 通过代理服务器 访问FTP 服务器 下载文件 我真哭了 期待牛人的出现.....
具体查msdn
这个我知道
webproxy 实例一个 设置属性 附给 FtpWebRequest.Proxy
但是 FtpWebRequest.Proxy 如果 代理是个ftp服务器的话 会异常的 显示不支持FTP代理.
不知道你是要自已写代理,还是通过代理来访问ftp?
通过代理 访问FTP 终于有人 问到点子上了 帮帮忙吧
大概思路是建立代理服务器类,通过FtpWebRequest来进行Ftp操作.NetProxy.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;namespace WindowsApplication4
{
public class NetProxy
{
string _ProxyAddress = String.Empty; public string ProxyAddress
{
get { return _ProxyAddress; }
}
int _ProxyPort = 0; public int ProxyPort
{
get { return _ProxyPort; }
} public NetProxy(string proxyAddress, int proxyPort)
{
_ProxyAddress = proxyAddress;
_ProxyPort = proxyPort;
} /// <summary>
/// 获得代理服务器
/// </summary>
/// <param name="userName">代理用户名</param>
/// <param name="userKey">代理用户密码</param>
/// <returns></returns>
public WebProxy GetProxy(string userName, string userKey)
{
WebProxy _WP = new WebProxy(ProxyAddress, ProxyPort);
//本地地址不使用代理服务器
_WP.BypassProxyOnLocal = true; ICredentials credentials = new NetworkCredential(userName, userKey);
_WP.Credentials = credentials;
return _WP;
} /// <summary>
/// 设置全局代理服务
/// </summary>
/// <param name="webProxy"></param>
public void SetAllProxy(WebProxy webProxy)
{
WebRequest.DefaultWebProxy = webProxy;
} public void Test(string userName, string userKey)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://www.sina.com.cn"));
request.Proxy = GetProxy(userName, userKey);
request.UserAgent = "Mozilla/4.0";
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.AllowAutoRedirect = true;
byte[] str = System.Text.Encoding.ASCII.GetBytes("username=admin");
request.ContentLength = str.Length;
Stream temps = request.GetRequestStream();
return true;
}
catch (WebException ex)
{
return false;
}
}
}
}
Ftp.csusing System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;namespace WindowsApplication4
{
public class Ftp
{
string _ftpServerIP = String.Empty; public string FtpServerIP
{
get { return _ftpServerIP; }
} WebProxy _Proxy = null; public WebProxy Proxy
{
get { return _Proxy; }
} string _ftpUserID = String.Empty; public string FtpUserID
{
get { return _ftpUserID; }
} string _ftpPassword = String.Empty; public string FtpPassword
{
get { return _ftpPassword; }
}
public Ftp(string ftpServerIP, string ftpUserID, string ftpPassword, WebProxy webProxy)
{
_ftpServerIP = ftpServerIP;
_ftpUserID = ftpUserID;
_ftpPassword = ftpPassword;
_Proxy = webProxy;
} /// <summary>
/// 创建FTP实体
/// </summary>
/// <param name="uri">InterNet的URI信息</param>
/// <returns>FTP实体</returns>
private FtpWebRequest CreatFtp(string uri)
{
FtpWebRequest _FtpRequest = null;
_FtpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
//指定文件传输类型
_FtpRequest.UseBinary = true;
_FtpRequest.Credentials = new NetworkCredential(FtpUserID, FtpPassword);
// 默认为true,连接不会被关闭
// 在一个命令之后被执行
_FtpRequest.KeepAlive = false;
//设置代理
_FtpRequest.Proxy = this.Proxy;
return _FtpRequest;
} /// <summary>
/// 上传文件
/// </summary>
/// <param name="filename">文件全名称</param>
private void Upload(string filename)
{
FileInfo fileInf = new FileInfo(filename);
string uri = "ftp://" + FtpServerIP + "/" + fileInf.Name; FtpWebRequest reqFTP = this.CreatFtp(uri); // 指定执行什么命令
reqFTP.Method = WebRequestMethods.Ftp.UploadFile; // 上传文件时通知服务器文件的大小
reqFTP.ContentLength = fileInf.Length; // 缓冲大小设置为2kb
int buffLength = 2048; byte[] buff = new byte[buffLength];
int contentLen; // 打开一个文件流 (System.IO.FileStream) 去读上传的文件
FileStream fs = fileInf.OpenRead(); // 把上传的文件写入流
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(); } /// <summary>
/// 下载文件
/// </summary>
/// <param name="filePath">路径</param>
/// <param name="fileName">文件名称</param>
private void Download(string filePath, string fileName)
{ string uri = "ftp://" + FtpServerIP + "/" + fileName; FtpWebRequest reqFTP = this.CreatFtp(uri); FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create); reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize);
} ftpStream.Close(); outputStream.Close(); response.Close(); }
}
}
string ftp = "d.sql";
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpUri);
IWebProxy pWebOroxy = new WebProxy("http://proxyserver:80/", true);
ftpRequest.Proxy = pWebOroxy; FtpWebResponse ftpResponse = null;
FileStream ftpfile = new FileStream("E:\\WinCE\\FtpCode\\安全法.rar", FileMode.Create);
ftpRequest.Credentials = new NetworkCredential("liupeng", "liupeng");
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
ftpRequest.UseBinary = true;
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
Stream ftpstream = ftpResponse.GetResponseStream();
byte[] ftpbyte = new byte[2048];
int readcout = 0;
readcout = ftpstream.Read(ftpbyte,0,2048);
while (readcout > 0)
{
ftpfile.Write(ftpbyte,0,readcout);
readcout = ftpstream.Read(ftpbyte, 0, 2048);
}
ftpfile.Close();
ftpResponse.Close();
ftpstream.Close();