C# 使用ftp下载一个文件夹下的所有文件,包括子目录文件夹

  这篇博客给大家补充一个方法,就是得到一个目录下的所有文件名称。在前端调用,大家写一个递归去遍历就可以了,我在这里就不在谢了。具体ftp下载的方法在我的另一篇博客里有,需要的可以去看一下。

/// <summary>
        /// 读取文件目录下所有的文件名称,包括文件夹名称
        /// </summary>
        /// <param name="ftpAdd">传过来的文件夹路径</param>
        /// <returns>返回的文件或文件夹名称</returns>
        public static string[] GetFtpFileList(string ftpAdd )
        {

            string url = FTPCONSTR + ftpAdd;
            FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(new Uri(url));
            ftpRequest.UseBinary = true;
            ftpRequest.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD);

            if (ftpRequest != null)
            {
                StringBuilder fileListBuilder = new StringBuilder();
                //ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;//该方法可以得到文件名称的详细资源,包括修改时间、类型等这些属性
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;//只得到文件或文件夹的名称
                try
                {

                    WebResponse ftpResponse = ftpRequest.GetResponse();
                    StreamReader ftpFileListReader = new StreamReader(ftpResponse.GetResponseStream(), Encoding.Default);

                    string line = ftpFileListReader.ReadLine();
                    while (line != null)
                    {
                        fileListBuilder.Append(line);
                        fileListBuilder.Append("@");//每个文件名称之间用@符号隔开,便于前端调用的时候解析
                        line = ftpFileListReader.ReadLine();
                    }
                    ftpFileListReader.Close();
                    ftpResponse.Close();
                    fileListBuilder.Remove(fileListBuilder.ToString().LastIndexOf("@"), 1);
                    return fileListBuilder.ToString().Split(‘@‘);//返回得到的数组
                }
                catch (Exception ex)
                {
                    return null;
                }
            }
            else
            {
                return null;
            }
        }

  FTP实现文件的下载功能请参考博客:http://www.cnblogs.com/zhenzaizai/p/7434669.html。

时间: 2024-07-31 15:22:52

C# 使用ftp下载一个文件夹下的所有文件,包括子目录文件夹的相关文章

CoreJava_线程并发(阻塞队列):在某个文件夹下搜索含有某关键字的文件

Java多线程编程是非常考验一个程序员水平的.传统的WEB程序中,因为框架提供了太多的健壮性.并发性.可靠性的支持,所以我们都是将所有的注意力放到了业务实现上.我们只是按照业务逻辑的要求,不停的积累自己的代码.因为知识,或者是经验的限制,经常出现了问题而不自知.例如,某些比较原始的项目中,并没有使用Spring等相对来说比较灵活健壮的框架.而是仅仅使用Servlet来作为服务端的实现方式. 举一个简单的栗子,众所周知,当请求到了容器,容器是创建并且启动了一个Servlet线程来对当前的请求作出相

.NET Core中复制源文件夹下的所有内容到新文件夹

.NET Core中没有原生的复制文件夹方法,我们可以自己写个: 新建一个.NET Core控制台项目,示例代码如下: using System; using System.IO; namespace CoreIO { class Program { /// <summary> /// 复制源文件夹下的所有内容到新文件夹 /// </summary> /// <param name="sources">源文件夹路径</param> ///

模拟test文件下的201712{01..31}/pdf这些文件夹下都有100个pdf文件

1.模拟test文件下的201712{01..31}/pdf这些文件夹下都有100个pdf文件注意灰色部分有反引号[[email protected] ~]# cat b.sh#!/bin/bashcd /root/test && mkdir -p 201712{01..31}/pdfWJ=find /root/moban -type ffor f in find /root/test/201712{01..31}/pdf -type ddocp $WJ $f &>/dev/

matlab遍历文件夹下所有图片和遍历所有子文件夹下图片

做图像处理实验,经常需要遍历当前文件下所有图片.matlab当然很早就考虑了这个问题,库函数dir就是完成这个工作的.函数返回的是一个存放所有目录下文件信息的结构体,通过遍历结构体就可以达到访问所有文件的目的了.具体实现见下面程序: imgPath = 'E:/imageData/'; % 图像库路径imgDir = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件for i = 1:length(imgDir) % 遍历结构体就可以一一处理图片了 img = imre

python 在指定的文件夹下生成随机的测验试卷文件

#! python3 #在指定的路径中生成指定数目的测验试卷和参考答案文本,试卷内容是测验对我国28个省级行政区的省会城市的选择, #要求每份试题的试题顺序不同,不同试卷中相同试题的选项随机抽取. import random import os # 各省及其省会的字典数据 capitals = {'新疆': '乌鲁木齐', '甘肃': '兰州', '宁夏': '银川', '陕西': '西安', '青海': '西宁', '西藏': '拉萨', '贵州': '贵阳', '内蒙古': '呼和浩特',

PHP获取文件夹内所有文件包括子目录文件的名称或路径

/* * new getFile($_dir[,$_emptyDir,$_fileType]); * @parma $_dir 是目录名称 * @parma $_emptyDir 是否获取空文件夹,选填,默认不获取,true则获取空文件夹 * @parma $_fileType 获取文件名称的类型,选填,默认获取只文件名称,true则获取带有路径的文件名称 **/ class getFiles { private $_dir; private $_emptyDir; private $_file

win7基础 cmd del+*.扩展名 删除指定文件夹下的同一类型的所有文件

系统      :Windows7注意事项  :博文内容仅供参考,不可用于其他用途. 初始状态下,原文件夹内的所有文件 cmd 窗口下的指令输入 结果展示, ------------------------------------------如果您觉得博文内容有可以优化的地方,请留下评论,我会认真思考的.

Linux 下使用 wc 统计文件夹下所有文件的代码行数(包括子目录)

wc 命令用于统计文件内容的行数.单词数.字母数. 但是如果想统计一个目录下所有文件的行数,wc 并没有提供递归统计. 不过,可以结合 find 命令,例如: $ wc -l `find -name *.c` 其中,-l 参数是统计行数,find -name *.c 是查找当前目录(包含子目录)下所有的C文件,` ` 是 shell 中的替换命令. 当然,实现方法有很多,我只是觉得这个比较简单易记. 测试效果如下: 最后,附一下 wc 的使用帮助(man wc) NAME wc - print

find命令删除当前文件夹下N天前多类文件

find . \( -name "*.gz" -o -name "*.zip" -o -name "*.cfg" \) -maxdepth 1 -mtime +2  -exec rm {} \; 说明: 删除当前文件夹(-maxdepth 1) 2天以前的(-mtime +2) 多类文件 gz zip cfg   删除 -exec rm {} \;