随笔 - 232, 文章 - 25, 评论 - 1261, 阅读 - 331万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

C#中文件操作【File】和【Directory】

Posted on   停留的风  阅读(4215)  评论(1编辑  收藏  举报

主要类的介绍:

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

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

● Path —— 实用类,用于处理路径名称。

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

● DirectoryInfo —— 表示磁盘上的物理目录,具有处理此目录的方法。

● FileStreamInfo —— 用作FileInfo和DirectoryInfo的基类,可以使用多态性同时处理文件和目录。

● FileStream —— 表示可写或可读,或二者均可的文件。此文件可以同步或异步地读写。

● StreamReader —— 从流中读取字符数据,可以使用FileStream创建为基类。

● StreamWriter —— 向流写入字符数据,可以使用FileStream创建为基类。

● FileSystemWatcher —— FileSystemWatcher是本章要介绍的最高级的类。它用于监控文件和目录,提供了这些文件和目录发生变化时应用程序可以捕获的事件。在Windows编程技术中缺乏此功能,但是现在.NET Framework很容易对文件系统事件作出响应。

本章还将介绍System.IO.Compression命名空间,它允许使用GZIP压缩或Deflate压缩模式读写压缩文件:

● DeflateStream —— 表示在写入时自动压缩数据或在读取时自动解压缩的流,压缩使用Deflate算法来实现。

● GZipStream —— 表示在写入时自动压缩数据或在读取时自动解压缩的流,压缩使用GZIP算法来实现。

最后,学习使用System.Runtime.Serialization命名空间及其子命名空间进行读写的串行化,主要介绍System.Runtime.Serialization.Formatters.Binary命名空间中的BinaryFormatter类,它允许把对象串行化为二进制数据流,并可以并行化这些数据。

File与FileInfo类的主要区别,
File类是静态的,FileInfo不是静态的也没有静态的方法,仅可用于实例化的对象。
FileInfo方法基本类似于File。关于二者,作何选择。
● 如果仅进行单一方法调用,则可以使用静态File类上的方法。在此,单一调用要快一些,因为.NET Framework不必实例化新对象,再调用方法。
● 如果应用程序在文件上执行几种操作,则实例化FileInfo对象并使用其方法就更好一些。这会节省时间,因为对象已在文件系统上引用正确的文件,而静态类必须每次都寻找文件。

而DirectoryInfo类与Directory区别,也FileInfo类似。
●如果进行单一调用,就使用静态Directory类。
●如果进行一系列调用,则使用实例化的DirectoryInfo。

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示