C#遍历文件夹的3种方法(附带实例)
案例研究是分析复杂事件的有效方法,通过具体实例揭示普遍规律。 #生活知识# #社会生活# #公共事件分析#
C#程序中遍历文件夹,可以使用 DirectoryInfo 类提供的 GetDirectories() 方法、GetFiles() 方法和 GetFileSystemInfos() 方法实现,下面分别对这3个方法进行详细讲解。
C# GetDirectories()方法
用来返回当前目录的子目录。该方法为可重载方法,具有以下 3 种重载形式:
public DirectoryInfo[] GetDirectories() public DirectoryInfo[] GetDirectories(string searchPattern) public DirectoryInfo[] GetDirectories(string searchPattern, SearchOption searchOption)searchPattern:搜索字符串,如用于搜索所有以单词 System 开头的目录的“System*”。searchOption:SearchOption 枚举的一个值,指定搜索操作是应仅包含当前目录还是应包含所有的子目录。返回值:第一种重载形式的返回值为 DirectoryInfo 对象的数组;第二种和第三种重载形式的返回值为与 searchPattern 匹配的 DirectoryInfo 类型的数组。
C# GetFiles()方法
返回当前目录的文件列表。该方法为可重载方法,具有以下 3 种重载形式:
public FileInfo[] GetFiles() public FileInfo[] GetFiles(string searchPattern) public FileInfo[] GetFiles(string searchPattern, SearchOption searchOption)searchPattern:搜索字符串(如“*.txt”)。searchOption:searchOption 枚举的一个值,指定搜索操作是应仅包含当前目录还是应包含所有的子目录。返回值:FileInfo 类型数组。
C# GetFileSystemInfos()方法
检索表示当前目录的文件和子目录的强类型 FileSystemInfo 对象的数组。该方法为可重载方法,具有以下两种重载形式:
public FileSystemInfo[] GetFileSystemInfos() public FileSystemInfo[] GetFileSystemInfos(string searchPattern)searchPattern:搜索字符串。返回值:第一种重载形式的返回值为强类型 FileSystemInfo 项的数组;第二种重载形式的返回值为与搜索条件匹配的强类型 FileSystemInfo 对象的数组。
一般遍历文件夹时都会使用 GetFileSystemInfos() 方法,因为 GetDirectories() 方法只遍历文件夹中的子文件夹,GetFiles() 方法只遍历文件夹中的文件,而 GetFileSystemInfos() 方法遍历文件夹中的所有子文件夹及文件。
【实例】获取文件夹中的所有子文件夹及文件信息。程序开发步骤如下:
1) 新建一个 Windows 应用程序,默认窗体为 Form1.cs。
2) 在 Form1 窗体中,添加一个 FolderBrowserDialog 控件、一个 TextBox 控件、一个 Button 控件和一个 ListView 控件:
FolderBrowserDialog 控件用来显示“浏览文件夹”对话框;TextBox 控件用来显示选择的文件夹路径及名称;Button 控件用来打开“浏览文件夹”对话框并获取所选文件夹中的子文件夹及文件;ListView 控件用来显示选择的文件夹中的子文件夹及文件信息。双击触发 Button 控件的 Click 事件,在该事件中,首先使用 DirectoryInfo 对象的 GetFileSyste mInfos() 方法获取指定文件夹下所有的子文件夹及文件,然后将获取到的信息显示在 ListView 列表中。代码如下:
private void button1_Click(object sender, EventArgs e){ listView1.Items.Clear(); if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = folderBrowserDialog1.SelectedPath; DirectoryInfo dinfo = new DirectoryInfo(textBox1.Text); FileSystemInfo[] fsinfos = dinfo.GetFileSystemInfos(); foreach (FileSystemInfo fsinfo in fsinfos) { if (fsinfo is DirectoryInfo) { DirectoryInfo dirinfo = new DirectoryInfo(fsinfo.FullName); listView1.Items.Add(dirinfo.Name); listView1.Items[listView1.Items.Count - 1].SubItems.Add(dirinfo.FullName); listView1.Items[listView1.Items.Count - 1].SubItems.Add(""); listView1.Items[listView1.Items.Count - 1].SubItems.Add(dirinfo.CreationTime.ToShortDateString()); } else { FileInfo finfo = new FileInfo(fsinfo.FullName); listView1.Items.Add(finfo.Name); listView1.Items[listView1.Items.Count - 1].SubItems.Add(finfo.FullName); listView1.Items[listView1.Items.Count - 1].SubItems.Add(finfo.Length.ToString()); listView1.Items[listView1.Items.Count - 1].SubItems.Add(finfo.CreationTime.ToShortDateString()); } } }}
运行程序,单击“浏览”按钮,弹出“浏览文件夹”对话框;选择文件夹,单击“确定”按钮,将选择的文件夹中所包含的子文件夹及文件信息显示在 ListView 控件中。
网址:C#遍历文件夹的3种方法(附带实例) https://c.klqsh.com/news/view/305909
相关内容
C#获取文件夹下的所有文件c盘满了文件怎么迁移?3大妙招,安全迁移不翻车
硬盘就一个c盘怎么分区?2种方法,创建D盘/E盘/F盘......
轻松学会Win11 Users目录迁移的三种方法!
Win11怎么录屏桌面?3种官方方法+2种专业工具全解析
ae动画预设保存在哪个文件夹?
简述c语言中三种循环结构的特点并各举一例
c盘太满了怎么移到d盘?4个方案包含迁移文件和程序
新媒体标题文案拟定技巧(附7种常见的文案标题写作方法)
针对个人护理用具的皮肤护理附件的制作方法
