c# – 如何压缩文件
发布时间:2020-12-15 03:57:45 所属栏目:百科 来源:网络整理
导读:我想压缩C#中的文件和目录.我在互联网上找到了一些解决方案,但它们非常复杂,我无法在我的项目中运行它们.有人可以建议我一个清晰有效的解决方案吗? 解决方法 您可以在System.IO.Compression命名空间中使用GZipStream .NET 2.0. public static void Compress
我想压缩C#中的文件和目录.我在互联网上找到了一些解决方案,但它们非常复杂,我无法在我的项目中运行它们.有人可以建议我一个清晰有效的解决方案吗?
解决方法
您可以在System.IO.Compression命名空间中使用GZipStream
.NET 2.0. public static void CompressFile(string path) { FileStream sourceFile = File.OpenRead(path); FileStream destinationFile = File.Create(path + ".gz"); byte[] buffer = new byte[sourceFile.Length]; sourceFile.Read(buffer,buffer.Length); using (GZipStream output = new GZipStream(destinationFile,CompressionMode.Compress)) { Console.WriteLine("Compressing {0} to {1}.",sourceFile.Name,destinationFile.Name,false); output.Write(buffer,buffer.Length); } // Close the files. sourceFile.Close(); destinationFile.Close(); } .NET 4 public static void Compress(FileInfo fi) { // Get the stream of the source file. using (FileStream inFile = fi.OpenRead()) { // Prevent compressing hidden and // already compressed files. if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fi.Extension != ".gz") { // Create the compressed file. using (FileStream outFile = File.Create(fi.FullName + ".gz")) { using (GZipStream Compress = new GZipStream(outFile,CompressionMode.Compress)) { // Copy the source file into // the compression stream. inFile.CopyTo(Compress); Console.WriteLine("Compressed {0} from {1} to {2} bytes.",fi.Name,fi.Length.ToString(),outFile.Length.ToString()); } } } } } http://msdn.microsoft.com/en-us/library/ms404280.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |