C#(System.IO)文件处理方法(全面)


System.IO是C#中用于输入和输出操作的命名空间。它提供了许多类和方法,用于处理文件、文件夹和流的读取和写入操作。以下是一些System.IO命名空间中常用的类和功能:
File类:用于创建、复制、移动、删除和读写文件等操作。它包含一组静态方法,例如Create、Copy、Move、Delete、ReadAllText、WriteAllText等。
Directory类:用于创建、复制、移动和删除文件夹等操作。它包含一组静态方法,例如CreateDirectory、Copy、Move、Delete等。
Path类:用于处理文件和文件夹路径的常见操作。它包含一组静态方法,例如Combine(用于组合路径)、GetExtension(获取文件扩展名)、GetFileName(获取文件名)等。
FileStream类:用于在文件中进行读取和写入操作的流。它允许你以字节为单位读取和写入文件内容。
StreamReader和StreamWriter类:用于以文本方式读取和写入文件内容的流。它们提供了更方便的方法,如逐行读取和写入文本数据。
BinaryReader和BinaryWriter类:用于以二进制格式读取和写入文件内容的流。它们允许你以字节为单位读取和写入数据,适用于处理二进制文件。
这些只是System.IO命名空间中一些常用的类和功能。你可以通过查阅官方文档或参考资料来了解更多类和方法的详细信息和用法。

  • File类:用于创建、复制、移动、删除和读写文件等操作

File 类是 System.IO 命名空间中用于执行文件相关操作的静态类。它提供了一组方法,用于创建、复制、移动、删除和读写文件等操作。以下是 File 类的一些常用方法和用法:
创建文件:
string filePath = "C:\\path\\to\\file.txt";
File.Create(filePath);
上述代码创建了一个名为 "C:\\path\\to\\file.txt" 的文件。你可以使用 Create 方法来创建文件,并返回一个 FileStream 对象以进行进一步的读写操作。

复制文件:
string sourceFilePath = "C:\\path\\to\\source.txt";
string destFilePath = "C:\\path\\to\\destination.txt";
File.Copy(sourceFilePath, destFilePath);
以上代码将名为 "source.txt" 的文件复制到 "destination.txt"。

移动文件:
string sourceFilePath = "C:\\path\\to\\source.txt";
string destFilePath = "C:\\path\\to\\destination.txt";
File.Move(sourceFilePath, destFilePath);
以上代码将名为 "source.txt" 的文件移动到 "destination.txt"。如果目标文件已存在,将被覆盖。

删除文件:
string filePath = "C:\\path\\to\\file.txt";
File.Delete(filePath);
以上代码删除名为 "file.txt" 的文件。

读取文件内容:
string filePath = "C:\\path\\to\\file.txt";
string content = File.ReadAllText(filePath);
以上代码将文件 "file.txt" 的内容作为字符串读取到变量 content 中。你还可以使用 File.ReadAllLines 方法逐行读取文件内容,或使用 File.OpenRead 方法创建一个 FileStream 对象进行更底层的读取操作。

写入文件内容:
string filePath = "C:\\path\\to\\file.txt";
string content = "Hello, World!";
File.WriteAllText(filePath, content);
以上代码将字符串内容写入文件 "file.txt"。你还可以使用 File.WriteAllLines 方法写入字符串数组的内容,或使用 File.OpenWrite 方法创建一个 FileStream 对象进行更底层的写入操作。
File 类还提供了其他方法和属性,如检查文件是否存在、获取文件的创建时间和修改时间、获取文件的大小等。你可以进一步探索官方文档和参考资料,以了解更多关于 File 类的详细信息和用法。
请注意,在执行文件操作时要小心处理文件的读写权限,并遵循正确的异常处理和资源管理实践,以确保文件操作的安全性和可靠性。

  • Directory类:用于创建、复制、移动和删除文件夹等操作

Directory类是System.IO命名空间中用于处理文件夹(目录)的操作的主要类。它提供了许多方法来创建、复制、移动和删除文件夹。以下是一些Directory类常用的方法:
CreateDirectory:创建一个新的文件夹。
string path = "C:\\path\\to\\folder";
Directory.CreateDirectory(path);

Delete:删除指定的文件夹。
string path = "C:\\path\\to\\folder";
Directory.Delete(path);

Move:将文件夹移动到新的位置。
string sourcePath = "C:\\path\\to\\folder";
string destinationPath = "C:\\new\\path\\to\\folder";
Directory.Move(sourcePath, destinationPath);

Exists:检查文件夹是否存在。
string path = "C:\\path\\to\\folder";
bool exists = Directory.Exists(path);

GetDirectories:获取指定文件夹中的所有子文件夹的路径。
string path = "C:\\parent\\folder";
string[] subDirectories = Directory.GetDirectories(path);
foreach (string subDirectory in subDirectories)
{
    Console.WriteLine(subDirectory);
}

GetFiles:获取指定文件夹中的所有文件的路径。
string path = "C:\\parent\\folder";
string[] files = Directory.GetFiles(path);
foreach (string file in files)
{
    Console.WriteLine(file);
}

Copy:复制文件夹及其内容到新的位置。
string sourcePath = "C:\\source\\folder";
string destinationPath = "C:\\destination\\folder";
Directory.Copy(sourcePath, destinationPath);
上述方法提供了一些常见的文件夹操作,但还有其他更多的方法可以进一步探索和学习。请注意,在进行文件夹操作时,确保对于需要的操作具有适当的权限和安全性。

  • Path类:用于处理文件和文件夹路径的常见操作。

Path类是System.IO命名空间中用于处理文件和文件夹路径的常见操作的类。它提供了一组静态方法,可以轻松处理路径字符串。以下是一些Path类常用的方法:

Combine:将多个字符串组合成一个路径字符串。
string path1 = "C:\\path\\to";
string path2 = "file.txt";
string combinedPath = Path.Combine(path1, path2);
// 结果:C:\path\to\file.txt

GetFileName:从路径字符串中获取文件名(包括文件扩展名)。
string path = "C:\\path\\to\\file.txt";
string fileName = Path.GetFileName(path);
// 结果:file.txt

GetDirectoryName:从路径字符串中获取文件夹路径。
string path = "C:\\path\\to\\file.txt";
string directoryName = Path.GetDirectoryName(path);
// 结果:C:\path\to

GetExtension:从路径字符串中获取文件的扩展名。
string path = "C:\\path\\to\\file.txt";
string extension = Path.GetExtension(path);
// 结果:.txt

GetFileNameWithoutExtension:从路径字符串中获取文件名(不包括扩展名)。
string path = "C:\\path\\to\\file.txt";
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);
// 结果:file

GetFullPath:获取指定路径字符串的绝对路径。
string relativePath = "folder\\file.txt";
string fullPath = Path.GetFullPath(relativePath);
// 结果:C:\current\directory\folder\file.txt
这些方法可以帮助你执行常见的路径操作,如组合路径、提取文件名和文件夹路径、获取文件扩展名等。Path类还提供了其他方法,如处理根路径、路径规范化和路径比较等。你可以查阅官方文档以了解更多详细信息和用法。
使用Path类时,确保考虑不同操作系统(例如Windows和Linux)对路径的约定和差异,以确保你的代码在不同环境中正确工作。

  • FileStream类:用于在文件中进行读取和写入操作的流。

FileStream类是System.IO命名空间中用于在文件中进行读取和写入操作的流的主要类。它提供了直接对文件进行读写的功能,以字节为单位进行操作。以下是FileStream类的一些常用方法和用法:

创建 FileStream 对象:
string filePath = "C:\\path\\to\\file.txt";
FileStream fileStream = new FileStream(filePath, FileMode.Open);
上述代码创建了一个 FileStream 对象,将文件 "C:\\path\\to\\file.txt" 以只读模式打开。

读取文件内容:
byte[] buffer = new byte[1024]; // 定义一个缓冲区
int bytesRead = fileStream.Read(buffer, 0, buffer.Length); // 从文件中读取数据到缓冲区
string content = Encoding.UTF8.GetString(buffer, 0, bytesRead); // 将字节转换为字符串
以上代码从文件中读取数据,并将其存储在缓冲区中。然后使用适当的编码将字节转换为字符串。

写入文件内容:
string content = "Hello, World!";
byte[] buffer = Encoding.UTF8.GetBytes(content); // 将字符串转换为字节
fileStream.Write(buffer, 0, buffer.Length); // 将字节写入文件
以上代码将字符串转换为字节,并将字节写入文件。

关闭 FileStream:
fileStream.Close(); // 关闭文件流
确保在不再需要使用 FileStream 对象时,及时关闭它以释放资源。
FileStream 类还提供了其他方法和属性,如 Seek(设置流的位置)、Flush(刷新流的缓冲区)和 Length(获取文件长度)等。你可以进一步探索官方文档和参考资料,以了解更多关于 FileStream 类的详细信息和用法。
请注意,在使用 FileStream 时要小心处理文件的读写权限,并遵循正确的异常处理和资源管理实践,以确保文件操作的安全性和可靠性。

  • StreamReader和StreamWriter类:用于以文本方式读取和写入文件内容的流。

StreamReader 和 StreamWriter 类是 System.IO 命名空间中用于以文本方式读取和写入文件内容的流的类。它们提供了更方便的方法来处理文本数据,而不需要直接与字节进行交互。以下是 StreamReader 和 StreamWriter 类的一些常用方法和用法:

创建 StreamReader 对象:
string filePath = "C:\\path\\to\\file.txt";
StreamReader reader = new StreamReader(filePath);
上述代码创建了一个 StreamReader 对象,将文件 "C:\\path\\to\\file.txt" 以默认编码方式打开进行读取。

逐行读取文件内容:
string line;
while ((line = reader.ReadLine()) != null)
{
    Console.WriteLine(line);
}
以上代码逐行读取文件内容并输出每行的内容。ReadLine() 方法返回文件中的下一行文本,并在到达文件末尾时返回 null。

读取整个文件内容:
string content = reader.ReadToEnd();
以上代码将文件的全部内容读取为一个字符串。

创建 StreamWriter 对象:
string filePath = "C:\\path\\to\\file.txt";
StreamWriter writer = new StreamWriter(filePath);
上述代码创建了一个 StreamWriter 对象,用于将文本写入文件 "C:\\path\\to\\file.txt"。

写入文本到文件:
string content = "Hello, World!";
writer.Write(content);
以上代码将文本内容写入文件。

关闭 StreamReader 和 StreamWriter:
reader.Close(); // 关闭 StreamReader
writer.Close(); // 关闭 StreamWriter
确保在不再需要使用 StreamReader 和 StreamWriter 对象时,及时关闭它们以释放资源。

StreamReader 和 StreamWriter 类还提供了其他方法和属性,如设置编码、读取特定长度的文本、写入换行符等。你可以进一步探索官方文档和参考资料,以了解更多关于 StreamReader 和 StreamWriter 类的详细信息和用法。
请注意,使用 StreamReader 和 StreamWriter 时要小心处理文件的读写权限,并遵循正确的异常处理和资源管理实践,以确保文本数据的安全性和可靠性。

如设置编码、读取特定长度的文本、写入换行符等
当使用 StreamReader 和 StreamWriter 类时,你可以通过构造函数和属性来设置编码方式,并使用相应的方法来读取特定长度的文本和写入换行符。
设置编码方式:
// 使用指定的编码方式创建 StreamReader 对象
StreamReader reader = new StreamReader(filePath, Encoding.UTF8);

// 使用指定的编码方式创建 StreamWriter 对象
StreamWriter writer = new StreamWriter(filePath, false, Encoding.UTF8);
在上述示例中,使用 Encoding.UTF8 来指定以 UTF-8 编码方式进行读写操作。你可以根据需要选择不同的编码方式,例如 Encoding.ASCII、Encoding.Unicode 等。

读取特定长度的文本:
char[] buffer = new char[1024]; // 定义一个缓冲区
int charsRead = reader.Read(buffer, 0, buffer.Length); // 从流中读取字符到缓冲区
string text = new string(buffer, 0, charsRead); // 将字符数组转换为字符串
上述代码示例读取最多 buffer.Length 个字符,并将它们存储在缓冲区中。然后使用实际读取的字符数创建一个新的字符串。

写入换行符:
writer.WriteLine(); // 写入一个换行符
上述代码示例写入一个换行符到文件中。WriteLine 方法会根据平台的换行约定自动写入相应的换行符。
除了上述示例,StreamReader 和 StreamWriter 类还提供了其他方法和属性,如设置缓冲区大小、检测流的末尾、控制是否自动刷新缓冲区等。你可以查阅官方文档以了解更多关于 StreamReader 和 StreamWriter 类的详细信息和用法。
记住,在使用 StreamReader 和 StreamWriter 时,要注意处理文件的读写权限,并遵循正确的异常处理和资源管理实践,以确保文本数据的安全性和可靠性。

  • BinaryReader和BinaryWriter类:用于以二进制格式读取和写入文件内容的流。

BinaryReader 和 BinaryWriter 类是 System.IO 命名空间中用于以二进制格式读取和写入文件内容的流的类。它们提供了对二进制数据进行读写的功能,允许以更底层的方式处理数据。以下是 BinaryReader 和 BinaryWriter 类的一些常用方法和用法:

创建 BinaryReader 对象:
string filePath = "C:\\path\\to\\file.bin";
FileStream fileStream = new FileStream(filePath, FileMode.Open);
BinaryReader reader = new BinaryReader(fileStream);
上述代码创建了一个 BinaryReader 对象,将文件 "C:\\path\\to\\file.bin" 以只读模式打开进行二进制读取。

读取二进制数据:
int intValue = reader.ReadInt32(); // 读取一个 int 值
double doubleValue = reader.ReadDouble(); // 读取一个 double 值
byte[] buffer = new byte[1024];
int bytesRead = reader.Read(buffer, 0, buffer.Length); // 读取字节数组
以上代码示例演示了几个常用的读取方法。ReadInt32 读取一个 32 位整数,ReadDouble 读取一个双精度浮点数,Read 读取指定长度的字节数组。

创建 BinaryWriter 对象:
string filePath = "C:\\path\\to\\file.bin";
FileStream fileStream = new FileStream(filePath, FileMode.Create);
BinaryWriter writer = new BinaryWriter(fileStream);
上述代码创建了一个 BinaryWriter 对象,用于将二进制数据写入文件 "C:\\path\\to\\file.bin"。

写入二进制数据:
int intValue = 42;
double doubleValue = 3.14;
byte[] buffer = new byte[] { 0x01, 0x02, 0x03 };
writer.Write(intValue); // 写入一个 int 值
writer.Write(doubleValue); // 写入一个 double 值
writer.Write(buffer, 0, buffer.Length); // 写入字节数组
以上代码示例演示了几个常用的写入方法。Write 方法用于写入不同类型的二进制数据,包括整数、浮点数和字节数组。

关闭 BinaryReader 和 BinaryWriter:
reader.Close(); // 关闭 BinaryReader
writer.Close(); // 关闭 BinaryWriter
确保在不再需要使用 BinaryReader 和 BinaryWriter 对象时,及时关闭它们以释放资源。
BinaryReader 和 BinaryWriter 类还提供了其他方法和属性,如读取和写入不同大小的整数、浮点数、字符串和布尔值等。你可以进一步探索官方文档和参考资料,以了解更多关于 BinaryReader 和 BinaryWriter 类的详细信息和用法。
请注意,在使用 BinaryReader 和 BinaryWriter 时要小心处理文件的读写权限,并遵循正确的异常

你可能感兴趣的:(c#,开发语言,visualstudio)