winform如何下载FTP上的文件?

haloow10 2011-12-04 02:54:28
winform如何下载FTP上的文件?下面是我在网上找的代码,运行后提示以下错误:
"远端伺服器传回一個錯誤: (530) 未登入"。是不是还需要登陆什么的?这代码要如何修改?
private void button1_Click(object sender, EventArgs e)
{
DownLoad(@"ftp://ni.hao.com/123.rar", "F:\\");//想问下这里的两个参数可以这样写吗?
}
private void DownLoad(string URL,string Dir)
{
WebClient client = new WebClient();
string fileName = URL.Substring(URL.LastIndexOf("/") + 1); //被下载的文件名

string Path = Dir + fileName; //另存为的绝对路径+文件名

try
{
WebRequest myre = WebRequest.Create(URL);
}
catch(Exception exp)
{
MessageBox.Show(exp.Message, "Error");
}

try
{
client.DownloadFile(URL, fileName);
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
byte[] mbyte = r.ReadBytes((int)fs.Length);

FileStream fstr = new FileStream(Path, FileMode.OpenOrCreate, FileAccess.Write);

fstr.Write(mbyte, 0, (int)fs.Length);
fstr.Close();

}
catch (Exception exp)
{
MessageBox.Show(exp.Message, "Error");
}
}
...全文
301 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Connie_2012 2012-12-01
  • 打赏
  • 举报
回复
能不能把你源码发给我啊 我最近都在弄这个 我没得接触过ftp这块 网上找了很多 都没得觉得问题
山东蓝鸟贵薪 2011-12-04
  • 打赏
  • 举报
回复
必须有权限,就是[读取写入]的权限才行
Lxpd 2011-12-04
  • 打赏
  • 举报
回复
肯定是需登录的,,C# 下有直接FTP的类FtpWebRequest
josephSC 2011-12-04
  • 打赏
  • 举报
回复
官方的:http://msdn.microsoft.com/zh-cn/library/system.net.ftpwebrequest.aspx
非官方的:
private void DownloadFileFTP()
{
string inputfilepath = @"C:\Temp\FileName.exe";
string ftphost = "xxx.xx.x.xxx";
string ftpfilepath = "/Updater/Dir1/FileName.exe";

string ftpfullpath = "ftp://" + ftphost + ftpfilepath;

WebClient request = new WebClient();
request.Credentials = new NetworkCredential("UserName", "P@55w0rd");
byte[] fileData = request.DownloadData(ftpfullpath);

FileStream file = File.Create(inputfilepath);
file.Write(fileData, 0, fileData.Length);
file.Close();
MessageBox.Show("Download Complete");
}
a78782295 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lxpd 的回复:]
肯定是需登录的,,C# 下有直接FTP的类FtpWebRequest
[/Quote]

是的,网上有FTPWebRequest类的,里面有登录,下载,上传等的方法,LZ可以去搜一下,相对来说还是比较简单的

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧