首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#如何遍历某个文件夹中的所有子文件和子文件夹(循环递归遍历多层),得到所有的文件名,存储在数组列表中

首先是有一个已知的路径,现在要遍历该路径下的所有文件及文件夹,因此定义了一个列表,用于存放遍历到的文件名。...递归遍历如下:将已知路径和列表数组作为参数传递, public void Director(string dir,List list) { DirectoryInfo d...d.GetDirectories();//文件夹 foreach (FileInfo f in files) { list.Add(f.Name);//添加文件名到列表中...} //获取子文件夹内的文件列表,递归遍历 foreach (DirectoryInfo dd in directs) {...Director(dd.FullName, list); } } 这样就得到了一个列表,其中存储了所有的文件名,如果要对某一个文件进行操作,可以循环查找: foreach (string

14.4K40

如何使用PQ获取目录下所有文件夹的名(不含文件和子目录)

今天想把之前发布的Power BI的示例文件文件夹做一个表出来,只获取该目录下的所有文件夹的名,并不包含其中各种文件和子目录。 ? 因为每个文件夹中都包含多个文件,甚至还有子文件夹: ?...所以如果直接用“从文件夹获取数据”的方式,PowerQuery会使用Folder.Files函数: ? Folder.Files会将所选目录下所有文件的路径罗列出来: ?...当然,其实可以通过一系列pq操作将文件夹的名都筛选出来,实现我的目的。 不过,这样其实有个小问题,如果有一些文件夹我还没有在里面保存文件,也就是空文件夹,那么它就不会出现在列表中: ?...它只返回所选的目录下的文件夹名和文件名,并不会返回子文件夹下的文件。 所以,我们将Folder.Files替换成Folder.Contents: ? 这样我们就得到了根目录下的所有文件夹名,和文件名。...这样,就将该目录下的所有文件夹的名获取到了。

7.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Day2-召唤Linux- CG

    Linux可多用户使用,因此普通用户无法访问像Windows一样“我的电脑”这样级别的文件夹,每个用户可达到的最高级目录是宿主目录,就是用户登陆时所在的目录。宿主目录在Home目录下。...大多数生物信息学软件都是基于Linux开发的,不需要图形界面,因此有效节省资源。另外,命令行模式极大的方便批量、高效的处理文件,可以很好的满足数据处理的需求。 3.怎样召唤linux?...4.怎样登录服务器--xshell和terminal? Windows使用XShell;MacOS使用Terminal或iterms登陆。 练习 1 MacOS 上terminal登陆服务器。...删除文件 rm xxx 删除目录 rmdir xxx 删除有内容目录 rm -r xxx 清空服务器所有内容(需要root权限) rm -rf /#-r递归,多级目录一并删除,-f强制删除,无任何提示...练习 6 mv mv 将文件转移到新文件夹或重命名文件。

    12410

    Day2-橙子

    学几个使用频率很高的命令pwdpwd #print working directory 显示当前路径#路径/home/bio03mkdirmkdir #make directory 创建空目录#常用文件夹名称...mkdir biosoft #存放生信软件mkdir project #存放生信项目mkdir tmp #存放一些杂七杂八mkdir src #存放源代码lsls #显示当前文件夹下的列表,不管是目录还是文件...,都能显示rmrm #删除文件rmdir #删除空目录rm -r #删除非空目录rm-rf / #-r 递归,多级目录一并删除;-f 强制删除,不用任何提示#bio03@ecm-cefa:~/rm_test...$ rm -r huahua#bio03@ecm-cefa:~$ rmdir rm_test#bio03@ecm-cefa:~/rm_test$ rm doodle.txtcdcd+目录名,表示进入该目录...#将文件移入文件夹,或者重命名mv file1 file2 #将file1重命名为file2mv file 路径 #移动file到某路径下mv file 路径小技巧:用tab键(键盘上q前面那个)可以补齐命令和文件名称

    13410

    C# 文件操作系列一

    (3)、Path类:这个类包含的静态成员可以用于处理路径名 (4)、DriveInfo类:它的属性和方法提供了指定驱动器的信息 (5)、Directory和DirectoryInfo类:这些类表示文件系统上的文件夹...(6)、FileInfo和File类:这些类表示文件系统上的文件 上图中有两个表示文件夹的类,两个表示文件的类,具体用哪个类取决于访问文件夹和文件的次数。...(7)、Directory类和File类与DirectoryInfo和FileInfo类的区别 Directory类和File类这两个类是静态类,所以不能实例化,如果只对文件或者文件夹执行一个操作,使用这两个类就很好...上面只是一部分常用的操作,并不是FileInfo和DirectoryInfo实例所有的方法和属性。...读写文件实际上是使用流对象完成,FileInfo也可以实现Open()、OpenRead()、OpenWrite()、OpenText()、Create()、CreateText()等操作,为此他们返回的都是流对象

    1K50

    C# 配置文件存储 各种序列化算法性能比较

    ,所有模块的配置都是模块自己查找配置文件读取,然而大家都知道,在机械硬盘,随机读取文件的性能很差。...于是我就开始了准备把所有的模块的配置文件合为一个,在合并的时候需要做序列化,因为存在很多模块都是使用自己实现的方式进行序列化。 下面就是我进行对比各个算法的性能。...如果不是,那么说明本文已经过期 在看本文的时候,如果要运行本文的代码,需要先在自己的 E 盘创建一个叫回收站的文件夹。因为我在代码会对这个文件夹写入。...自己写配置文件可以在一个线程进行读取,然后把整个程序所有在启动过程使用配置文件的地方都删除,只有软件启动的过程读取的文件只有很少的几个,最好是一个,这样才能保证软件启动的性能。...代码:C# 配置文件存储 各种序列化算法性能比较 程序1.1-CSDN下载

    42120

    C# 配置文件存储 各种序列化算法性能比较

    ,所有模块的配置都是模块自己查找配置文件读取,然而大家都知道,在机械硬盘,随机读取文件的性能很差。...于是我就开始了准备把所有的模块的配置文件合为一个,在合并的时候需要做序列化,因为存在很多模块都是使用自己实现的方式进行序列化。 下面就是我进行对比各个算法的性能。...如果不是,那么说明本文已经过期 在看本文的时候,如果要运行本文的代码,需要先在自己的 E 盘创建一个叫回收站的文件夹。因为我在代码会对这个文件夹写入。...自己写配置文件可以在一个线程进行读取,然后把整个程序所有在启动过程使用配置文件的地方都删除,只有软件启动的过程读取的文件只有很少的几个,最好是一个,这样才能保证软件启动的性能。...代码:C# 配置文件存储 各种序列化算法性能比较 程序1.1-CSDN下载 如果没有积分需要代码请联系我 ? ----

    1K20

    C# 基础知识系列- 14 IO篇之 文件操作(01)

    前言 本章节是IO篇的第二集,我们在上一篇中介绍了C#中IO的基本概念和一些基本方法,接下来我们介绍一下操作文件的方法。在编程的世界中,操作文件是一个很重要的技能。 1....我们最常见到的图片文件,后缀有jpg/png/gif这些常见的;文本文件为txt等。 目录,不严谨的来讲可以用文件夹代替。不过严格来说,目录指的是文件所在的文件夹以及文件夹的位置这些信息的集合。...路径是指文件或文件夹所在的位置的字符串表示,有相对路径和绝对路径,有物理路径和网络路径等一系列这些划分。...1.1 File和FileInfo C# 提供了两个访问文件的入口,File和FileInfo这两个类。有人可能要迷惑了,为啥要提供两个呢,这两个又有啥子不一样的呢?别急,让我们来一起看一看吧。...所以,File更多的用在快速操作文件并不需要长时间多次使用同一个文件的场景,而FileInfo则适合同一个文件的多次使用。

    75420

    Day-2 香波🐟

    需要闲置电脑)2.Windows10上的linux3.Windows7上的linux(用git bash)Git Bash 是一个用于 Windows 系统的命令行界面,它提供了类似 Unix 的环境,使用户能够使用...Linux大概过程是先下载一个Xshell,然后根据服务器ip以及用户名及密码就登录进去啦~没有遇到什么阻碍嘿嘿(牢记四大条件:网络、ip地址、用户名、密码)附上来自生信星球的小白贴士目录:就是我们平时说的文件夹路径...:就是目录的层级位置,比如,home目录下有个biosoft,那么biosoft的路径就是/home/biosoft【就相当于你的C盘底下有个biosoft文件夹】Linux基本命令pwd(显示目前所在路径...)mkdir(创建一个空目录)mkdir bioware #生信软件文件夹ls(显示列表,文件和目录都能显示)bio05@ecm-cefa:~$ mkdir bioware #生信软件bio05@ecm-cefa...(创建新文件)cat(查看文件,head,tail可以查看前后10行的数据)bio05@ecm-cefa:~$ cdbio05@ecm-cefa:~$ lsapp#存放生信软件 bioware#生信软件

    25610

    使用 Linux 终端查看你的电脑上有哪些文件

    要在有图形界面的计算机上列出文件,你通常可以打开一个文件管理器(Linux 上的 “文件”,MacOS 上的 “访达”,Windows 上的 “文件资源管理器”)来查看文件。...要在终端中列出文件,你可以使用 ls 命令来列出当前目录中的所有文件。...单个点(.)实际上是一个元位置,代表 你当前所在的文件夹 。两个点(..)表示你可以从当前位置返回的上级目录。也就是说,当前目录在另一个文件夹中。...文件和文件夹以及如何区分它们 你可能会注意到,文件和文件夹是很难区分的。一些 Linux 发行版有一些漂亮的颜色设置,比如所有的文件夹都是蓝色的,文件是白色的,二进制文件是粉色或绿色的,等等。...而二进制文件,如压缩文件和可执行程序,用星号(*)标记。

    3.2K30

    使用 Linux 终端查看你的电脑上有哪些文件

    要在有图形界面的计算机上列出文件,你通常可以打开一个文件管理器(Linux 上的 “文件”,MacOS 上的 “访达”,Windows 上的 “文件资源管理器”)来查看文件。...要在终端中列出文件,你可以使用 ls 命令来列出当前目录中的所有文件。...单个点(.)实际上是一个元位置,代表 你当前所在的文件夹 。两个点(..)表示你可以从当前位置返回的上级目录。也就是说,当前目录在另一个文件夹中。...文件和文件夹以及如何区分它们 你可能会注意到,文件和文件夹是很难区分的。一些 Linux 发行版有一些漂亮的颜色设置,比如所有的文件夹都是蓝色的,文件是白色的,二进制文件是粉色或绿色的,等等。...而二进制文件,如压缩文件和可执行程序,用星号(*)标记。

    3.3K00

    git上上传项目

    2.安装客户端tortoiseGit      github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,我这里选用TortoiseGit,他给我们提供了图形界面的操作。...成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。...修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。...比如一般c#的项目我的.gitignore是这样写的: bin .suo obj bin和obj是编译目录,里面都不是源代码,忽略;suo文件是vs2010的配置文件,不需要。...tag的使用很简单,主要操作有:查看tag、创建tag、验证tag以及共享tag。 6.1查看tag 列出所有tag: 1 git tag 这样列出的tag是按字母排序的,和创建时间没关系。

    69750

    DotNET介绍_dotnet 6

    常用DOS命令 D: 盘符切换到D盘(切换其他盘一样盘符+:+回车) Dir D: 列出D盘下面的所有文件夹以及文件 MD New 在当前目录下面创建一个名为New的文件夹 RD New: 删除当前目录下面的名为...New的文件夹 CD D:\360\ 进入D盘下面的360文件夹中 CD… 返回到当前文件夹的上层文件夹中 CD\ 返回根目录 Del *txt: 删除当前目录下面所有的后缀名为txt的文件 CLS 清除控制台窗口...,是项目的一个集合 App.config:项目的配置文件 Form1.cs文件:winform框架的C#代码文件 Form1.Designer.cs文件:Winform框架的图形化界面代码文件 bin文件夹...:程序的调试文件夹 Debug文件夹:调试结果文件夹 (2)winform操作 双击一个对象添加这个对象的默认事件 双击Winform窗体添加的是加载事件 其他事件的添加方式:选择到事件窗口中,寻找目标时间双击事件名...>不同进制的使用 二进制:以0b开头,由0和1组成 八进制:以0开头,由0-7组 (C#中没有现成的表示方式 ) 十进制:计算机默认就是十进制,由0-9组成 十六进制:以0x开头,由0-9+A-F组成

    2.1K30

    Try 和异常

    Try 以及异常在c#中是很重要的内容,很多开发人员其实并不是很了解try 和异常。在这篇文章中我将会各大家具体讲解一下Try和异常。...,它可以捕获所有任意类型的异常,因此需要把它放在所有 catch 语句块的后面,如果将它放在所有 catch 语句块的前面,将会无法通过编译。...如果代码存在多种异常的话,可以使用多个 catch 进行处理不同的异常,并且针对给定的异常,只有一个 catch 会执行。...当我们省略掉异常类型时,catch 块将会捕获所有类型的异常。...下面我将列出常用的异常属性: 异常属性 描述 StackTrace 展现从异常发生点到 catch 代码块所有被调用的方法 Message 异常的描述信息 InnerException 引发外层异常的内层异常

    80310
    领券