21.4 实例:读取目录下指定类型的文件的内容
来源:互联网 发布:中国国际形势印度知乎 编辑:程序博客网 时间:2024/06/06 18:00
21.4 实例:读取目录下指定类型的文件的内容
【实例21-1】 实现了读取指定目录下的、指定文件类型的、所有文件的内容,并在控制台中显示读取的内容。具体实现步骤如下:
(1)打开Visual Studio 2008集成开发环境,并创建名称为"Sample_21"的控制台应用程序。该应用程序的版本为.NET Framework 3.5。
(2)右击"解决资源方案管理器"面板中的Program.cs节点,打开名称为"Program.cs"的类文件,并在该文件中添加ReaderFile (string path) 方法的程序代码。ReaderFile (string path)方法读取指定文件(由path参数指定)的内容,并返回读取的内容。具体步骤如下:
① 创建类型为string的fileData变量,用来保存读取的内容。
② 在try语句中读取文件的内容。
③ 创建读取文件内容的StreamReader类的实例reader,并指定该实例的编码方式为操作系统的默认编码方式。
④ 调用ReadToEnd()方法从头至尾读取文件的所有内容,并保存为fileData变量。
⑤ 关闭reader实例。
⑥ 如果try语句发生异常,则在catch语句中抛出异常。
综合上述,ReaderFile(string path)方法的程序代码如下。
- /// <summary> 读取文件的内容 </summary>
- public static string ReaderFile(string path)
- {
- string fileData = string.Empty;
- try
- { ///读取文件的内容
- StreamReader reader = new
- StreamReader(path,Encoding.Default);
- fileData = reader.ReadToEnd();
- reader.Close();
- }
- catch(ExceptI/On ex){throw new ExceptI
- /On(ex.Message,ex);} ///抛出异常
- return fileData;
- }
(3)在Program.cs文件中添加ReaderSubDirectory(string path,string filter,ref StringBuilder content)方法的程序代码。该方法读取指定目录(由path参数指定)下的、满足过滤器(filter参数指定)的所有文件的内容,读取的内容都保存到content参数(该参数为引用参数)中。具体步骤如下:
① 判断path参数是否合法。如果不合法,则中止该方法。
② 创建目录信息的实例parentDi。
③ 使用foreach语句和GetFiles()方法搜索parentDi实例指定目录下的、满足过滤器(filter参数指定)的所有文件。
④ 如果foreach语句找到文件,则依次读取每一个文件的内容,并保存到content参数中。
综合上述,ReaderSubDirectory(string path,string filter,ref StringBuilder content)方法的程序代码如下:
- /// <summary> 读取子目录下的所有文件的内容 </summary>
- private static void ReaderSubDirectory(string path,string filter,ref
- StringBuilder content)
- { ///判断目录是否正确
- if(string.IsNullOrEmpty(path) == true) return;
- ///创建目录信息的实例
- DirectoryInfo parentDI = new DirectoryInfo(path);
- ///读取当前目录及其子目录下的指定文件的内容,
- 都保存到content变量中
- foreach(FileInfo fi in parentDI.
- GetFiles(filter,SearchOptI/On.AllDirectories))
- {
- content.AppendLine();
- content.Append(ReaderFile(fi.FullName));
- content.AppendLine();
- }
- }
(4)在Program.cs文件中添加ReaderDirectory(string path,string filter)方法的程序代码。该方法读取指定目录(由path参数指定)下的、满足过滤器(filter参数指定)的所有文件的内容,并返回读取的内容。具体步骤如下:
① 判断path参数是否合法。如果不合法,则中止该方法。
② 创建保存读取的内容的StringBuilder类的实例content。
③ 如果filter参数为空,则直接调用ReaderSubDirectory(string path,string filter,ref StringBuilder content)方法读取path参数指定目录(及其子目录)下的所有文件的内容。
④ 如果filter参数不为空,则首先将过滤器转换为一个字符串数组filters,然后使用foreach语句处理filters数组中每一个类型的文件,并读取path目录(及其子目录)下的、满足过滤器的所有文件的内容。
⑤ 上述读取文件的内容,都保存在content变量中。最后,将该变量转换为一个字符串,并返回该字符串。
综合上述,ReaderDirectory(string path,string filter)方法的程序代码如下:
- /// <summary> 读取指定目录下的所有文件 </summary>
- public static string ReaderDirectory(string path,string filter)
- { ///判断目录是否正确
- if(string.IsNullOrEmpty(path) == true) return string.Empty;
- StringBuilder content = new StringBuilder();
- ///保存读取的内容
- ///如果过滤器(filter)为空,则默认读取所有文件的内容
- if(string.IsNullOrEmpty(filter) == true)
- {
- ReaderSubDirectory(path,filter,ref content);
- }
- else
- { ///如果过滤器(filter)不为空,则获取被读取的文件
- string[] filters = filter.Split(new char[] { '|' },
- StringSplitOptI/Ons.RemoveEmptyEntries);
- ///读取每一个文件的内容
- foreach(string fi in filters){ReaderSubDirectory(path,fi,ref
- content);}
- }
- return content.ToString();
- }
(5)在Program.cs文件的Main(string[] args)方法中调用ReaderDirectory(string path,string filter)方法读取"C:\data"目录下的、后缀名为.cs的所有文件的内容,并显示在控制台中。程序代码如下:
- static void Main(string[] args)
- { ///读取"C:\data"目录下的所有的以",cs"结尾文件的内容,
- 并显示
- Console.WriteLine(ReaderDirectory(@"C:\data","*.cs"));
- Console.Read();
- }
(6)在Visual Studio 2008集成开发环境按下F5键,运行Sample_21应用程序。控制台显示的部分结果如下:
- using System;
- using System.CollectI/Ons;
- using System.Text;
- using System.I/O;
- using System.Windows.Forms;
- namespace Dorient.FileParse.Component
- {
- public class File
- {
- …
- ///写入文件
- StreamWriter writer = new StreamWriter(path,false,
- Encoding.Default);
- writer.Write(content);
- writer.Close();
- }
- catch(ExceptI/On ex)
- {
- MessageBox.Show(ex.Message,"写入文件错误");
- }
- }
- }
- }
- 21.4 实例:读取目录下指定类型的文件的内容
- Java读取指定目录下的文件内容
- C#读取目录下所有指定类型文件的方法
- 读取指定目录下的所有文件
- VBA遍历当前目录下指定类型的excel文件并复制文件内指定的内容到新表中
- 获取指定目录下的指定类型的文件
- C++ 读取文件内容到指定类型的变量
- 遍历指定目录下指定类型文件的函数
- 遍历指定目录下指定类型文件的方法集锦
- delphi遍历指定目录下指定类型文件的函数
- 转载遍历指定目录下所有指定类型的文件
- 删除指定目录下指定类型的文件
- 遍历读取指定文件夹下指定类型的所有文件
- 遍历读取指定文件夹下指定类型的所有文件
- 对指定文件夹下指定类型文件的读取
- Python 实例一 统计指定文件的行数或读取指定文件指定行数的内容
- 向指定文件目录下的文件写入内容
- 多级文件的复制:复制指定目录下的内容到另一指定目录下
- 从一个点云中提取索引
- 光电耦合器简介以及作用
- PowerShell为什么强大
- POJ 2987: Firing
- 一学就会之ado.net(一)
- 21.4 实例:读取目录下指定类型的文件的内容
- Linux 命令行操作(二)文件操作
- 抛弃LCDS和FMS,在tomcat下开发Red5应用(第五篇)-客户端和服务器端方法调用的参数传递
- Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
- Redis 之 主从复制
- 如何解决Please ensure that adb is correctly located at......
- 【剑指offer学习】求和为定值的两个数
- XML和JSON笔记
- cocos2dx 一些动作带解释