1、C# File文件处理
在System.IO
命名空间下,有各种不同的类我们可以处理文件。
I/O 类 | 描述 |
BinaryReader | 从二进制流读取原始数据。 |
BinaryWriter | 以二进制格式写入原始数据。 |
BufferedStream | 字节流的临时存储。 |
Directory | 有助于操作目录结构。 |
DirectoryInfo | 用于对目录执行操作。 |
DriveInfo | 提供驱动器的信息。 |
File | 有助于处理文件。 |
FileInfo | 用于对文件执行操作。 |
FileStream | 用于文件中任何位置的读写。 |
MemoryStream | 用于随机访问存储在内存中的数据流。 |
Path | 对路径信息执行操作。 |
StreamReader | 用于从字节流中读取字符。 |
StreamWriter | 用于向一个流中写入字符。 |
StringReader | 用于读取字符串缓冲区。 |
StringWriter | 用于写入字符串缓冲区。 |
例如,
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApplication { delegate int Calc(int i); class Program { static void Main(string[] args) { string path="/home/cjavapy/"; string s = ""; if (!File.Exists(path)) s = "不存在相应的目录"; else { StreamReader f2 = new StreamReader(path, System.Text.Encoding.GetEncoding("gb2312")); s = f2.ReadToEnd(); f2.Close(); f2.Dispose(); } Console.WriteLine(s); } } }
2、文件创建相关方法
File.Create(String):在指定路径中创建或覆盖文件。
File.Create(String, Int32):在指定路径中创建或覆盖文件,指定缓冲区大小。
File.Create(String, Int32, FileOptions):创建或覆盖指定路径中的文件,指定缓冲区大小和一个描述如何创建或覆盖该文件的选项。
File.CreateText(String) :创建或打开用于写入 UTF-8 编码文本的文件。 如果该文件已存在,将覆盖其内容。
FileStream(String, FileMode, FileAccess, FileShare) :使用指定的路径、创建模式、读/写权限和共享权限创建 FileStream 类的新实例。
FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions) :使用指定的路径、创建模式、读/写和共享权限、其他FileStreams 可以具有的对此文件的访问权限、缓冲区大小和附加文件选项初始化 FileStream 类的新实例。
FileStream(SafeFileHandle, FileAccess, Int32, Boolean):使用指定的读/写权限、缓冲区大小和同步或异步状态为指定的文件句柄初始化 FileStream 类的新实例。
FileStream(String, FileMode, FileAccess):使用指定的路径、创建模式和读/写权限初始化 FileStream 类的新实例。
Directory.CreateDirectory(String):在指定路径中创建所有目录和子目录,除非它们已经存在。
3、文件删除相关方法
File.Delete(String):删除指定的文件。
Directory.Delete(String):从指定路径删除空目录。
Directory.Delete(String, Boolean):删除指定的目录,并删除该目录中的所有子目录和文件(如果表示)。
4、文件操作判断相关方法
File.Exists(String):确定指定的文件是否存在。
Directory.Exists(String) :确定给定路径是否引用磁盘上的现有目录。
5、文件夹操作相关方法
Path.ChangeExtension(String, String):更改路径字符串的扩展名。
Path.Combine(String, String):将两个字符串组合成一个路径。
Path.Combine(String, String, String):将三个字符串组合成一个路径。
Path.Combine(String, String, String, String):将四个字符串组合成一个路径。
Path.Combine(String[]):将字符串数组组合成一个路径。
Path.GetExtension(String):返回指定路径字符串的扩展名(包括句点“.”)。
Path.GetFullPath(String):返回指定路径字符串的绝对路径。
Directory.CreateDirectory(String):在指定路径中创建所有目录和子目录,除非它们已经存在。
Directory.GetDirectories(String):返回指定目录中的子目录的名称(包括其路径)。
Directory.GetDirectories(String, String):返回指定目录中与指定的搜索模式匹配的子目录的名称(包括其路径)。
Directory.GetFiles(String):返回指定目录中文件的名称(包括其路径)。
Directory.GetFiles(String, String) :返回指定目录中与指定的搜索模式匹配的文件的名称(包含其路径)。
Directory.GetFiles(String, String, EnumerationOptions):返回指定目录中与指定的搜索模式和枚举选项匹配的文件的名称(包括其路径)。
Directory.GetFiles(String, String, SearchOption):返回指定目录中与指定的搜索模式匹配的文件的名称(包含其路径),使用某个值确定是否要搜索子目录。
相关文档:
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.path?view=net-5.0
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.directory?view=net-5.0
6、文件操作示例代码
using System; using System.IO; class Test { public static void Main() { string path = @"c:\temp\MyTest.txt"; if (!File.Exists(path)) { // 创建一个要写入的文件。 using (StreamWriter sw = File.CreateText(path)) { sw.WriteLine("Hello"); sw.WriteLine("And"); sw.WriteLine("Welcome"); } } // 打开要从中读取的文件。 using (StreamReader sr = File.OpenText(path)) { string s; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } } }