引言在软件开发过程中,文件操作是必不可少的环节。C作为一种功能强大的编程语言,提供了丰富的文件操作类和方法。本文将详细介绍C中高效文件操作的技巧,包括文件读写、压缩与加密,帮助开发者提升开发效率。一、...
在软件开发过程中,文件操作是必不可少的环节。C#作为一种功能强大的编程语言,提供了丰富的文件操作类和方法。本文将详细介绍C#中高效文件操作的技巧,包括文件读写、压缩与加密,帮助开发者提升开发效率。
在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); } } }
}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); }
}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); } } } }
}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"); }
}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); } } }
}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#中高效文件操作的技巧,包括文件读写、压缩与加密。通过掌握这些技巧,开发者可以提升开发效率,更好地处理文件操作任务。在实际开发过程中,可以根据具体需求选择合适的方法进行文件操作。