//遍历一个目录下所有的文件列表,代码实例

DirectoryInfo dir = new DirectoryInfo(folderName);
var list = GetAll(dir);

/// <summary>
        /// 搜索文件夹中的文件
        /// </summary>
        /// <param name="dir"></param>
        /// <returns></returns>
        private static List<string> GetAll(DirectoryInfo dir)
        {
            List<string> fileList = new List<string>();
            FileInfo[] allFile = dir.GetFiles();
            foreach (FileInfo fi in allFile)
            {
                fileList.Add(fi.FullName);
            }
            DirectoryInfo[] allDir= dir.GetDirectories();
            foreach (DirectoryInfo d in allDir)
            {
                fileList.AddRange(GetAll(d));
            }
            return fileList;
        }

File------实用类,提供许多静态方法,用于移动、删除、和复制文件。

Directory------实用类,提供许多静态方法,用于移动、删除和复制目录。

FileInfo------表示磁盘上的物理文件,具有可以处理此文件的方法,要完成对文件的读写工作,就必须创建Stream对像。

DirectoryInfo------表示磁盘上的物理目录,具有可以处理此目录的方法

这里提供了三种方法:

1、获得指定目录下的所有文件

2、获得指定目录及其子目录的所有文件

3、列出指定目录下及所其有子目录及子目录里更深层目录里的文件(需要递归)

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO; namespace WebAppFile
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string filePath=@"c:/log/";
Response.Write("测试1,获得指定目录下的所有文件:<br>");
List<FileInfo> list1 = GetFilesByDir(filePath);
foreach (FileInfo fi in list1)
{
Response.Write("完整路径:" + fi.FullName.ToString() + " 文件名:" + fi.Name + "<br>");
} Response.Write("<br><br>测试2,获得指定目录及其子目录的所有文件:<br>");
List<FileInfo> list2 = GetAllFilesByDir(filePath);
foreach (FileInfo fi in list2)
{
Response.Write("完整路径:"+fi.FullName.ToString() +" 文件名:"+fi.Name+ "<br>");
} Response.Write("<br><br>测试3,列出指定目录下及所有子目录及子目录里更深层目录里的文件:<br>");
GetAllFiles(filePath); } /// <summary>
/// 获得指定目录下的所有文件
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public List<FileInfo> GetFilesByDir(string path)
{
DirectoryInfo di = new DirectoryInfo(path); //找到该目录下的文件
FileInfo[] fi = di.GetFiles(); //把FileInfo[]数组转换为List
List<FileInfo> list = fi.ToList<FileInfo>();
return list;
} /// <summary>
/// 获得指定目录及其子目录的所有文件
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public List<FileInfo> GetAllFilesByDir(string path)
{
DirectoryInfo dir = new DirectoryInfo(path); //找到该目录下的文件
FileInfo[] fi = dir.GetFiles(); //把FileInfo[]数组转换为List
List<FileInfo> list = fi.ToList<FileInfo>(); //找到该目录下的所有目录里的文件
DirectoryInfo[] subDir = dir.GetDirectories();
foreach (DirectoryInfo d in subDir)
{
List<FileInfo> subList = GetFilesByDir(d.FullName);
foreach (FileInfo subFile in subList)
{
list.Add(subFile);
}
}
return list;
} /// <summary>
/// 列出指定目录下及所其有子目录及子目录里更深层目录里的文件(需要递归)
/// </summary>
/// <param name="path"></param>
public void GetAllFiles(string path)
{
DirectoryInfo dir = new DirectoryInfo(path); //找到该目录下的文件
FileInfo[] fi = dir.GetFiles();
foreach (FileInfo f in fi)
{
Response.Write("完整路径:" + f.FullName.ToString() + " 文件名:" + f.Name + "<br>");
} //找到该目录下的所有目录再递归
DirectoryInfo[] subDir = dir.GetDirectories();
foreach (DirectoryInfo d in subDir)
{
GetAllFiles(d.FullName);
}
}
}
}
运行结果:

测试1,获得指定目录下的所有文件:
完整路径:c:/log/--.xml 文件名:--.xml
完整路径:c:/log/--.xml 文件名:--.xml 测试2,获得指定目录及其子目录的所有文件:
完整路径:c:/log/--.xml 文件名:--.xml
完整路径:c:/log/--.xml 文件名:--.xml
完整路径:c:/log/LogBak/--.xml 文件名:--.xml 测试3,列出指定目录下及所有子目录及子目录里更深层目录里的文件:
完整路径:c:/log/--.xml 文件名:--.xml
完整路径:c:/log/--.xml 文件名:--.xml
完整路径:c:/log/LogBak/--.xml 文件名:--.xml
完整路径:c:/log/LogBak/TempLog/--.xml 文件名:--.xml

关于第3种列出指定目录下及其所有子目录及子目录里更深层目录里的文件(需要递归),如何写成一个方法呢,希望大家来帮忙。

C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)的更多相关文章

  1. 【Lua】关于遍历指定路径下所有目录及文件

    关于Lua中如何遍历指定文件路径下的所有文件,需要用到Lua的lfs库. 首先创建一个temp.lua文件,用编辑器打开: 要使用lfs库,首先需要把lfs库加载进来 require("lf ...

  2. Python小代码_15_遍历指定路径下的所有文件和文件夹,并格式化输出文件路径文件名和文件夹名,文件大小,修改时间

    遍历指定路径下的所有文件和文件夹,并格式化输出文件路径文件名和文件夹名,文件大小,修改时间 import osimport datetime def print_tree(dir_path): for ...

  3. test文件夹,测试类是放在src目录下的,test测试代码是代码啊,当然要放在代码文件夹下

    test文件夹,测试类是放在src目录下的,test测试代码是代码啊,当然要放在代码文件夹下 Maven的标准工程结构 Maven的标准工程结构如下: |-- pom.xml(maven的核心配置文件 ...

  4. C#遍历指定路径下的目录

    通过指定路径訪问路径下的文件.在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.Create ...

  5. 33.2 案例:输出指定目录下的所有java文件名(包含子目录)

    package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static ...

  6. eclipse_neon 的Spket 目录下只有一个Task Tags,没有其他的选项,导致没有办法添加提示文件! 添加sdk文件之后还是没有办法显示的解决办法

    问题解决办法: 将 spket-1.6.23的安装包里面的features  plugins 单独复制到D:\eclipse_neon\dropins 目录下,重启一下eclipse即可正常显示! 添 ...

  7. C#中获取指定路径下特定开头和后缀的所有文件

    场景 指定一个文件路径,获取当前路径下所有文件,并筛选出以指定内容开头和结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...

  8. C#中获取指定路径下指定后缀名的所有文件的路径的list

    场景 指定一个路径和后缀名,查找这个路径下所有以此后缀名结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取 ...

  9. asp.net MVC 中呈现指定区域下的分部视图

    Html.RenderAction() 可以呈现分部视图. asp.net MVC就是有这种好处,可以将多个子视图无缝合成到一个视图上再输出,那么开发的时候,能够进行模块化开发.看上去同属一个页面上的 ...

随机推荐

  1. NPOI 中的公式列的值的获取

    方法1 NPOI 中,对 sheet 对象设置 ForceFormulaRecalculation = true,即可实现自动将 Excel 的公式计算出来. 方法2 循环 Excel 的行.列,取出 ...

  2. mtr网络连通性测试

    01.mtr命令 yum install -y   mtr [root@jiao ~]# mtr --helpusage: mtr [-hvrwctglspniu46] [--help] [--ver ...

  3. ASP.NET之通过JS向服务端(后台)发出请求(__doPostBack is undefined)

    ASP.NET回发数据是通过函数__doPostBack来实现的.该函数在加入了服务端控件,并将AutoPostBack设置为true之后,将自己主动生成,详细能够參看以下的图. watermark/ ...

  4. ios中广告滚动页面(uiscrollview)

    展示功能 第一步 引入 “EScrollerView.h”,EScrollerView.m"文件 用法 NSArray *imgarr=@[@"1.jpg",@" ...

  5. Ubuntu 10.04里安装强大抓图工具Shutter

    Shutter 原名叫GScrot,是一款Linux下很强大的抓图工具,支持截取全屏幕,窗口,自选区域以及网页的图像,并且截取后的图像还可以简单编辑,Shutter还支持插件功能,矩齿,边缘化,碎纸, ...

  6. 使用perf + FlameGraph生成进程火焰图

    FlameGraph代码:https://github.com/cobblau/FlameGraph 使用方法 1,perf record --call-graph dwarf -p 12345 2, ...

  7. git的几个操作

    git reference https://git-scm.com/docs 克隆 从远程仓库克隆一个项目到本地文件夹,命令如下:$ git clone https://github.com/libg ...

  8. 基于TILE-GX实现快速数据包处理框架-netlib实现分析【转】

    最近在研究suricata源码,在匹配模式的时候,有tilegx mpipe mode,转载下文,了解一下. 原文地址:http://blog.csdn.net/lhl_blog/article/de ...

  9. android dialog加载中动画效果

    //显示动画 dialog = new Dialog(context, R.style.loading); dialog.setContentView(R.layout.loadinglayout); ...

  10. 图片标注工具LabelImg使用教程

    1.进入labelImg-master文件夹,在空白处使用 “Shift+鼠标右键” ,选择在此处打开命令窗口,依次输入下面语句即可打开软件. pyrcc4 -o resources.py resou ...