ASP.NET(c#)FTP上传文件文件夹【递归上传】
后端代码:
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.NET(c#)FTP上传文件文件夹【递归上传】
网页网址:http://scyanting.com/article/jdhjpo.html