您的位置:首页 > 编程语言 > ASP

ASP.NET(c#)FTP 上传文件文件夹【递归上传】

2013-01-21 15:19 627 查看
后端代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;

namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
string testDir = @"E:\EveryDayWorks\2013-1\1-18\redis";
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button2_Click(object sender, EventArgs e)
{
GetFiles(testDir);
}

public void GetFiles(string dir)
{
FtpClientService ftpClient = new FtpClientService();
try
{
//首先获取所有目录列表,在服务端创建目录,不然我们上传文件的时候,找不到对应的文件夹是会报错的
string[] dirs = Directory.GetDirectories(dir);
//判断该目录下,是否还有文件夹,有的话就循环创建文件夹,同时也会将对应文件夹下的文件也上传上去
if (dirs.Length > 0)
{
foreach (string d in dirs)
{
if (!string.IsNullOrEmpty(dir.Replace(testDir, "")))
{
ftpClient.MakeDir(dir.Replace(testDir, "").Replace("\\", "/"), new Uri("ftp://192.168.131.163/sss"));
string[] files = Directory.GetFiles(dir);
foreach (string f in files)
{
ftpClient.UploadFile(f, new Uri("ftp://192.168.131.163/sss" + dir.Replace(testDir, "").Replace("\\", "/")), 0, WebRequestMethods.Ftp.UploadFile);
}
}
if (Directory.Exists(d))
{
GetFiles(d);//递归调用
}
}
}
else//如果该目录下没有文件夹了,则读取下该文件夹里面的内容,看是否有文件
{
ftpClient.MakeDir(dir.Replace(testDir, "").Replace("\\", "/"), new Uri("ftp://192.168.131.163/sss"));
string[] files = Directory.GetFiles(dir);
foreach (string f in files)
{
ftpClient.UploadFile(f, new Uri("ftp://192.168.131.163/sss" + dir.Replace(testDir, "").Replace("\\", "/")), 0, WebRequestMethods.Ftp.UploadFile);
}
}
}
catch (Exception ex)
{

}
}
}
}

前端代码:

<asp:Button ID="Button2" runat="server" Text="Button" />
本文出自 “天道酬勤” 博客,请务必保留此出处http://yuhaitao.blog.51cto.com/3930555/1123299
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: