C# 扩展方法应用二:文件操作
2014-06-12 10:07
465 查看
在本人的工作中,经常要用到文件操作,举个例子,经常要从一个目录中获取所有的文件名,或者不同的扩展名的文件,然后将这些文件名建立一个文本文件,以便于读取等操作。还有就是经常性的要对文本进行读写操作,要把一个文本文件里的所有字符串读到一个数组或者集合中,然后把数组或者集合写进文件里。所以这样一些扩展方法将会非常方便的省去写代码的重复工作。
在这里主要演示的是读写,以及获取文件名等。
其实个人认为,C#File类和Directory类里的很多方法已经足够用了,只不过使用扩展方法,可以把一些类实例化的过程省略,在频繁的这样的过程中,无疑是能够节省很多时间的。
在这里主要演示的是读写,以及获取文件名等。
#region 读一个文件中的内容到List中,返回这个list /// <summary> /// 读一个文件中的内容到List中,返回这个list /// </summary> /// <param name="openPath">完整路径</param> /// <returns></returns> public static List<string> ReadFromFile(this string openPath) { List<string> result = new List<string>(); StreamReader sr = new StreamReader(openPath); while (!sr.EndOfStream) result.Add(sr.ReadLine()); sr.Close(); return result; } #endregion #region 把一个集合的内容写进文本文件中 /// <summary> /// 把一个集合的内容写进文本文件中 /// </summary> /// <param name="savePath">保存结果的文件路径</param> /// <param name="newResult">需要保存的集合名称</param> public static void WriteToFile(this string savePath, List<string> newResult) { File.WriteAllLines(savePath, newResult); } #endregion #region 读一个目录中所有的文件名列表,结果保存到一个集合中 /// <summary> /// 读一个目录中所有的文件名列表,结果保存到一个集合中 /// </summary> /// <param name="openPath">目标文件夹</param> /// <returns></returns> public static List<string> ReadFileNameFromDir(this string openPath) { DirectoryInfo dires = new DirectoryInfo(openPath); List<string> FileNameList = new List<string>(); FileInfo[] files = dires.GetFiles(); foreach (FileInfo f in files) { FileNameList.Add(f.Name); } return FileNameList; } #endregion #region 读一个目录中所有的文件名,并保存到文本文件中 /// <summary> /// 读一个目录中所有的文件名,并保存到文本文件中 /// </summary> /// <param name="directoryPath">获取文件名的目标文件夹</param> /// <param name="savePath">需要保存的文本文件</param> /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> /// <param name="isSearchChild">是否搜索目标文件夹的子文件夹</param> public static void GetFilesNameAndSave(this string directoryPath, string savePath, string searchPattern, bool isSearchChild) { List<string> FileNameList = new List<string>(); string[] fileNameArray; //如果目录不存在,则抛出异常 if (!IsExistDirectory(directoryPath)) { throw new FileNotFoundException(); } try { if (isSearchChild) { fileNameArray = Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories); } else { fileNameArray = Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly); } } catch (IOException ex) { throw ex; } foreach (string s in fileNameArray) FileNameList.Add(s); WriteToFile(savePath, FileNameList); } #endregion #region 读一个目录中所有的文件的绝对路径 /// <summary> /// 读一个目录中所有的文件的绝对路径 /// </summary> /// <param name="openPath">目标文件夹</param> /// <returns></returns> public static List<string> ReadFullPathFromDir(this string openPath) { DirectoryInfo dires = new DirectoryInfo(openPath); List<string> FileNameList = new List<string>(); FileInfo[] files = dires.GetFiles(); foreach (FileInfo f in files) { FileNameList.Add(f.FullName); } return FileNameList; } #endregion
其实个人认为,C#File类和Directory类里的很多方法已经足够用了,只不过使用扩展方法,可以把一些类实例化的过程省略,在频繁的这样的过程中,无疑是能够节省很多时间的。
相关文章推荐
- C#中常用的文件操作方法
- asp.net(C#)中上传大文件的几中常见应用方法
- C#操作word的一些基本方法(word打印,插入文件,插入图片,定位页眉页脚,去掉横线)
- 最为经典的C#操作文件的方法大全
- Asp.net(C#)对文件操作的方法(读取,删除,批量拷贝,删除...)
- 分享一篇关于C#对文件操作的日志,方法很全
- 最为常用的C#经典操作文件方法
- 分享一篇关于C#对文件操作的日志,方法很全
- C# 截取带路径的文件名字,扩展名,等等 的几种方法.
- C#中常用的经典文件操作方法
- c#扩展方法奇思妙用高级篇三:Enumerable.Cast<T>应用
- c# 扩展方法奇思妙用高级篇三:Enumerable.Cast<T> 应用
- c#频繁读取word文件 所请求的剪切板操作失败 解决方法
- C#中常用的经典文件操作方法
- Asp.net(C#)对文件操作的方法(读取,删除,批量拷贝,删除...)
- C#扩展方法的应用
- Asp.net(C#)对文件操作的方法(读取,删除,批量拷贝,删除...)
- Asp.net(C#)对文件操作的方法(读取,删除,批量拷贝,删除...)
- C#的扩展方法应用
- C#操作xml配置文件最简单方法