首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]揭秘C#高效文件操作技巧:轻松掌握文件读写、压缩与加密,提升开发效率!

发布于 2025-06-22 11:01:24
0
256

引言在软件开发过程中,文件操作是必不可少的环节。C作为一种功能强大的编程语言,提供了丰富的文件操作类和方法。本文将详细介绍C中高效文件操作的技巧,包括文件读写、压缩与加密,帮助开发者提升开发效率。一、...

引言

在软件开发过程中,文件操作是必不可少的环节。C#作为一种功能强大的编程语言,提供了丰富的文件操作类和方法。本文将详细介绍C#中高效文件操作的技巧,包括文件读写、压缩与加密,帮助开发者提升开发效率。

一、文件读写技巧

1. 使用StreamReader和StreamWriter进行文本读写

在C#中,StreamReader和StreamWriter是进行文本读写操作的高效类。以下是一个使用StreamReader和StreamWriter读取和写入文本文件的示例代码:

using System;
using System.IO;
class Program
{ static void Main() { string filePath = @"C:\example.txt"; // 写入文本 using (StreamWriter writer = new StreamWriter(filePath)) { writer.WriteLine("Hello, World!"); } // 读取文本 using (StreamReader reader = new StreamReader(filePath)) { string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); } } }
}

2. 使用File类进行文件操作

File类提供了丰富的文件操作方法,如创建、删除、复制、移动等。以下是一个使用File类复制文件的示例代码:

using System;
using System.IO;
class Program
{ static void Main() { string sourceFilePath = @"C:\source.txt"; string destinationFilePath = @"C:\destination.txt"; File.Copy(sourceFilePath, destinationFilePath, overwrite: true); }
}

二、文件压缩与解压技巧

1. 使用System.IO.Compression命名空间

C#提供了System.IO.Compression命名空间,用于进行文件压缩和解压操作。以下是一个使用GZipStream进行文件压缩和解压的示例代码:

using System;
using System.IO;
using System.IO.Compression;
class Program
{ static void Main() { string sourceFilePath = @"C:\example.txt"; string compressedFilePath = @"C:\example.txt.gz"; // 压缩文件 using (FileStream sourceStream = new FileStream(sourceFilePath, FileMode.Open)) { using (FileStream compressedStream = new FileStream(compressedFilePath, FileMode.Create)) { using (GZipStream compressionStream = new GZipStream(compressedStream, CompressionMode.Compress)) { sourceStream.CopyTo(compressionStream); } } } // 解压文件 using (FileStream compressedStream = new FileStream(compressedFilePath, FileMode.Open)) { using (FileStream decompressedStream = new FileStream(sourceFilePath, FileMode.Create)) { using (GZipStream decompressionStream = new GZipStream(compressedStream, CompressionMode.Decompress)) { decompressionStream.CopyTo(decompressedStream); } } } }
}

2. 使用ZipFile类进行文件压缩和解压

ZipFile类提供了更简单的文件压缩和解压方法。以下是一个使用ZipFile类压缩和解压文件的示例代码:

using System;
using System.IO;
using System.IO.Compression;
class Program
{ static void Main() { string sourceFilePath = @"C:\example.txt"; string zipFilePath = @"C:\example.zip"; // 压缩文件 ZipFile.CreateFromDirectory(sourceFilePath, zipFilePath); // 解压文件 ZipFile.ExtractToDirectory(zipFilePath, @"C:\extracted"); }
}

三、文件加密与解密技巧

1. 使用System.Security.Cryptography命名空间

C#提供了System.Security.Cryptography命名空间,用于进行文件加密和解密操作。以下是一个使用RSACryptoServiceProvider进行文件加密和解密的示例代码:

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
class Program
{ static void Main() { string filePath = @"C:\example.txt"; string encryptedFilePath = @"C:\encrypted.txt"; // 加密文件 using (FileStream fileStream = new FileStream(filePath, FileMode.Open)) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { byte[] fileBytes = new byte[fileStream.Length]; fileStream.Read(fileBytes, 0, fileBytes.Length); byte[] encryptedBytes = rsa.Encrypt(fileBytes, false); File.WriteAllBytes(encryptedFilePath, encryptedBytes); } } // 解密文件 using (FileStream encryptedStream = new FileStream(encryptedFilePath, FileMode.Open)) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { byte[] encryptedBytes = new byte[encryptedStream.Length]; encryptedStream.Read(encryptedBytes, 0, encryptedBytes.Length); byte[] decryptedBytes = rsa.Decrypt(encryptedBytes, false); File.WriteAllBytes(filePath, decryptedBytes); } } }
}

2. 使用AesCryptoServiceProvider进行文件加密和解密

AesCryptoServiceProvider类提供了对称加密算法,以下是一个使用AesCryptoServiceProvider进行文件加密和解密的示例代码:

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
class Program
{ static void Main() { string filePath = @"C:\example.txt"; string encryptedFilePath = @"C:\encrypted.txt"; // 加密文件 using (FileStream fileStream = new FileStream(filePath, FileMode.Open)) { using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { aes.Key = Encoding.UTF8.GetBytes("your-32-character-key"); aes.IV = Encoding.UTF8.GetBytes("your-16-character-iv"); using (CryptoStream cryptoStream = new CryptoStream(fileStream, aes.CreateEncryptor(), CryptoStreamMode.Read)) { using (FileStream encryptedStream = new FileStream(encryptedFilePath, FileMode.Create)) { cryptoStream.CopyTo(encryptedStream); } } } } // 解密文件 using (FileStream encryptedStream = new FileStream(encryptedFilePath, FileMode.Open)) { using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { aes.Key = Encoding.UTF8.GetBytes("your-32-character-key"); aes.IV = Encoding.UTF8.GetBytes("your-16-character-iv"); using (CryptoStream cryptoStream = new CryptoStream(encryptedStream, aes.CreateDecryptor(), CryptoStreamMode.Read)) { using (FileStream decryptedStream = new FileStream(filePath, FileMode.Create)) { cryptoStream.CopyTo(decryptedStream); } } } } }
}

总结

本文介绍了C#中高效文件操作的技巧,包括文件读写、压缩与加密。通过掌握这些技巧,开发者可以提升开发效率,更好地处理文件操作任务。在实际开发过程中,可以根据具体需求选择合适的方法进行文件操作。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流