【C#生态园】C#文件压缩库全面比较:选择最适合你的库

从核心功能到API概览:深度解析六大C#文件压缩库

前言

在软件开发过程中,文件的压缩和解压缩是一个常见的需求。针对C#开发者而言,选择合适的文件压缩库可以极大地简化开发工作。本文将介绍几个常用的C#文件压缩库,包括其核心功能、使用场景、安装与配置以及API概览,旨在帮助开发者根据实际需求选择最适合的库进行开发。

欢迎订阅专栏:C#生态园

文章目录

  • 从核心功能到API概览:深度解析六大C#文件压缩库
    • 前言
    • 1. SharpZipLib:一个用于C#的文件压缩库
      • 1.1 简介
        • 1.1.1 核心功能
        • 1.1.2 使用场景
      • 1.2 安装与配置
        • 1.2.1 安装指导
        • 1.2.2 基本配置
      • 1.3 API 概览
        • 1.3.1 文件压缩
        • 1.3.2 文件解压缩
    • 2. DotNetZip:一个用于C#的文件压缩库
      • 2.1 简介
        • 2.1.1 核心功能
        • 2.1.2 使用场景
      • 2.2 安装与配置
        • 2.2.1 安装指导
        • 2.2.2 基本配置
      • 2.3 API 概览
        • 2.3.1 文件压缩
        • 2.3.2 文件解压缩
    • 3. Ionic.Zip:提供在C#中创建、读取和修改ZIP文件的功能
      • 3.1 简介
        • 3.1.1 核心功能
        • 3.1.2 使用场景
      • 3.2 安装与配置
        • 3.2.1 安装指导
        • 3.2.2 基本配置
      • 3.3 API 概览
        • 3.3.1 ZIP文件创建
        • 3.3.2 ZIP文件读取
    • 4. SharpCompress:支持多种压缩格式的C#库
      • 4.1 简介
        • 4.1.1 核心功能
        • 4.1.2 使用场景
      • 4.2 安装与配置
        • 4.2.1 安装指导
        • 4.2.2 基本配置
      • 4.3 API 概览
        • 4.3.1 压缩格式支持
        • 4.3.2 数据解压
    • 5. SevenZipSharp:对7-Zip进行封装提供C#接口
      • 5.1 简介
        • 5.1.1 核心功能
        • 5.1.2 使用场景
      • 5.2 安装与配置
        • 5.2.1 安装指导
        • 5.2.2 基本配置
      • 5.3 API 概览
        • 5.3.1 7-Zip操作
          • 文件压缩示例
          • 文件解压示例
        • 5.3.2 压缩级别设置
    • 6. SharpArchiver:用于C#的通用归档处理库
      • 6.1 简介
        • 6.1.1 核心功能
        • 6.1.2 使用场景
      • 6.2 安装与配置
        • 6.2.1 安装指导
        • 6.2.2 基本配置
      • 6.3 API 概览
        • 6.3.1 归档创建
        • 6.3.2 归档解压
    • 总结

1. SharpZipLib:一个用于C#的文件压缩库

SharpZipLib是一个流行的开源压缩库,它提供了在C#中进行文件压缩和解压缩的功能。在本文中,我们将介绍SharpZipLib的简介、安装与配置以及API概览。

1.1 简介

1.1.1 核心功能

SharpZipLib主要包括对文件的压缩和解压缩功能,能够处理多种压缩格式,如ZIP、GZip等,并提供了对压缩文件进行操作的功能。

1.1.2 使用场景
  • 在C#应用程序中进行文件的压缩和解压缩操作。
  • 处理需要发送或存储的大量文件,并希望通过压缩来节省空间和传输时间。

1.2 安装与配置

1.2.1 安装指导

你可以通过NuGet包管理器来安装SharpZipLib。在Visual Studio中打开NuGet包管理器控制台,运行以下命令来安装SharpZipLib:

Install-Package SharpZipLib
1.2.2 基本配置

安装完成后,你可以在项目中引用ICSharpCode.SharpZipLib命名空间来开始使用SharpZipLib库。

1.3 API 概览

1.3.1 文件压缩

使用SharpZipLib进行文件压缩非常简单。以下是一个简单的示例,演示了如何使用SharpZipLib来压缩文件夹:

using ICSharpCode.SharpZipLib.Zip;
using System.IO;public class ZipHelper
{public void CreateZipFile(string sourceDirectory, string zipFilePath){using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(zipFilePath))){AddFolderToZip(sourceDirectory, zipStream, "");}}private void AddFolderToZip(string absolutePath, ZipOutputStream zipStream, string relativePath){string[] files = Directory.GetFiles(absolutePath);foreach (string file in files){FileInfo fileInfo = new FileInfo(file);using (FileStream fileStream = File.OpenRead(file)){byte[] buffer = new byte[fileStream.Length];fileStream.Read(buffer, 0, buffer.Length);ZipEntry entry = new ZipEntry(Path.Combine(relativePath, fileInfo.Name));zipStream.PutNextEntry(entry);zipStream.Write(buffer, 0, buffer.Length);}}string[] folders = Directory.GetDirectories(absolutePath);foreach (string folder in folders){AddFolderToZip(folder, zipStream, Path.Combine(relativePath, new DirectoryInfo(folder).Name));}}
}

以上代码创建了一个名为ZipHelper的类,其中的CreateZipFile方法接受一个源文件夹路径和一个目标ZIP文件路径,并将文件夹内容压缩成ZIP文件。

参考链接:SharpZipLib GitHub

1.3.2 文件解压缩

下面是一个简单的示例演示了如何使用SharpZipLib对文件进行解压缩:

using ICSharpCode.SharpZipLib.Zip;public class UnzipHelper
{public void DecompressFile(string compressedFile, string destinationFolder){using (var fileStreamIn = new FileStream(compressedFile, FileMode.Open, FileAccess.Read))using (var zipStream = new ZipInputStream(fileStreamIn)){ZipEntry entry;while ((entry = zipStream.GetNextEntry()) != null){if (!entry.IsFile) continue;string fullZipToPath = Path.Combine(destinationFolder, entry.Name);string directoryName = Path.GetDirectoryName(fullZipToPath);if (directoryName.Length > 0)Directory.CreateDirectory(directoryName);using (FileStream streamWriter = File.Create(fullZipToPath)){int size;byte[] data = new byte[2048];while (true){size = zipStream.Read(data, 0, data.Length);if (size > 0)streamWriter.Write(data, 0, size);elsebreak;}}}}}
}

官网链接:SharpZipLib - GitHub

以上是一些关于SharpZipLib库的基本介绍和使用方法,在实际项目中,你可以根据需求灵活运用其丰富的功能来进行文件压缩和解压缩操作。

2. DotNetZip:一个用于C#的文件压缩库

DotNetZip是一个开源的C#文件压缩库,可以帮助开发人员在他们的应用程序中创建和管理压缩文件。本文将介绍DotNetZip库的简介、安装与配置以及API概览。

2.1 简介

2.1.1 核心功能

DotNetZip提供了丰富的文件压缩和解压缩功能,包括创建ZIP文件、向ZIP文件添加文件、从ZIP文件提取文件等。此外,它还支持密码保护、自定义压缩级别和多种压缩格式。

2.1.2 使用场景

DotNetZip可用于开发人员需要在其C#应用程序中对文件进行压缩和解压缩的场景,如备份数据、打包文件、减小文件传输大小等。

2.2 安装与配置

2.2.1 安装指导

您可以通过NuGet包管理器来安装DotNetZip库。在Visual Studio中打开包管理器控制台,并运行以下命令:

Install-Package DotNetZip

这将会自动下载并安装最新版本的DotNetZip库。

2.2.2 基本配置

安装完成后,您只需在项目中引入using Ionic.Zip;即可开始使用DotNetZip库的功能。

2.3 API 概览

2.3.1 文件压缩

使用DotNetZip库可以非常方便地进行文件压缩。以下是一个简单的示例,演示了如何创建一个ZIP文件并向其中添加文件:

using (ZipFile zip = new ZipFile())
{zip.AddFile("file1.txt");zip.AddFile("file2.txt");zip.Save("result.zip");
}

更多关于文件压缩的API和用法,请参考DotNetZip官方文档。

2.3.2 文件解压缩

DotNetZip同样也提供了便捷的文件解压缩功能。以下是一个简单的示例,展示了如何从ZIP文件中提取文件:

using (ZipFile zip = ZipFile.Read("example.zip"))
{foreach (var entry in zip){entry.Extract("extractDir");}
}

更多关于文件解压缩的API和用法,请参考DotNetZip官方文档。

3. Ionic.Zip:提供在C#中创建、读取和修改ZIP文件的功能

3.1 简介

Ionic.Zip 是一个强大的开源库,它提供了在C#中创建、读取和修改ZIP文件的功能。通过Ionic.Zip,可以轻松地对ZIP文件进行操作,包括压缩、解压缩以及文件添加、删除等操作。

3.1.1 核心功能

Ionic.Zip 主要包含以下核心功能:

  • 创建ZIP文件
  • 读取ZIP文件
  • 修改ZIP文件
  • 密码保护ZIP文件
  • 大容量ZIP文件支持

Ionic.Zip 官方网站:Ionic.Zip

3.1.2 使用场景

Ionic.Zip 可以应用于各种场景,包括但不限于:

  • 文件备份与恢复
  • 文件压缩与解压缩
  • 数据传输与存储

3.2 安装与配置

3.2.1 安装指导

在 Visual Studio 中,可以通过 NuGet 包管理器来安装 Ionic.Zip 库。打开 NuGet 包管理器控制台,并输入以下命令来安装 Ionic.Zip:

Install-Package DotNetZip
3.2.2 基本配置

安装完成后,在需要使用 Ionic.Zip 的项目中引入命名空间即可开始使用:

using Ionic.Zip;

3.3 API 概览

3.3.1 ZIP文件创建

使用 Ionic.Zip 可以轻松创建ZIP文件,以下是一个简单的示例代码:

using (ZipFile zip = new ZipFile())
{zip.AddFile("file1.txt", "");zip.AddFile("file2.txt", "");zip.Save("result.zip");
}

在这个例子中,我们首先创建了一个新的 ZipFile 对象,然后向其中添加了两个文件,并最终保存为 result.zip。

3.3.2 ZIP文件读取

除了创建ZIP文件,Ionic.Zip 也提供了读取ZIP文件的功能,以下是一个读取ZIP文件的示例代码:

using (ZipFile zip = ZipFile.Read("example.zip"))
{foreach (ZipEntry entry in zip){Console.WriteLine(entry.FileName);entry.Extract("extracted");}
}

在这个例子中,我们使用 ZipFile.Read 方法读取了 example.zip 文件,并通过循环遍历了其中的所有文件,并将其解压到了 extracted 文件夹中。

以上就是 Ionic.Zip 在 C# 中创建、读取和修改ZIP文件的基本用法。详细的 API 可以参考官方文档:Ionic.Zip Documentation

4. SharpCompress:支持多种压缩格式的C#库

SharpCompress 是一个强大的C#库,可以处理多种不同的压缩格式文件。在本篇文章中,我们将介绍其核心功能、使用场景、安装与配置以及API概览。

4.1 简介

4.1.1 核心功能

SharpCompress 提供了对多种压缩格式的支持,包括 ZIP, RAR, 7Zip, TAR, GZip 等。它允许用户方便地对这些格式的文件进行压缩和解压操作,同时提供了丰富的 API 接口,可以满足各种复杂的需求。

4.1.2 使用场景

SharpCompress 可以被广泛应用于需要处理压缩文件的场景,比如文件上传、数据备份、日志归档等。无论是简单的文件压缩还是复杂的数据解压,SharpCompress 都能够提供稳定可靠的支持。

4.2 安装与配置

4.2.1 安装指导

你可以通过NuGet包管理器来安装SharpCompress。在Visual Studio中打开NuGet包管理器控制台,运行以下命令来安装SharpCompress:

Install-Package SharpCompress
4.2.2 基本配置

安装完成后,你可以在代码中引入SharpCompress库,并开始使用它的功能。

4.3 API 概览

4.3.1 压缩格式支持

SharpCompress 支持多种压缩格式,例如ZIP、RAR、7Zip等。下面是一个简单的示例,展示了如何使用SharpCompress来解压ZIP文件:

using (var archive = ArchiveFactory.Open("sample.zip"))
{foreach (var entry in archive.Entries){if (!entry.IsDirectory){entry.WriteToDirectory("output", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });}}
}

你可以根据自己的需求,进一步调整ExtractionOptions来满足更加复杂的解压需求。更多关于压缩和解压的操作,请参考 SharpCompress文档。

4.3.2 数据解压

除了压缩格式的支持外,SharpCompress还提供了丰富的API接口,用于处理数据解压的场景。例如,你可以使用SharpCompress来解压GZip格式的数据:

using (Stream stream = File.OpenRead("sample.gz"))
using (var reader = ReaderFactory.Open(stream))
{while (reader.MoveToNextEntry()){if (!reader.Entry.IsDirectory){reader.WriteEntryToDirectory("output", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });}}
}

以上代码演示了如何通过SharpCompress解压GZip格式的数据,并将解压后的内容保存到指定的目录中。

总之,SharpCompress是一个功能强大、易于使用的C#库,为处理多种压缩格式文件提供了良好的支持。无论是对压缩文件的操作,还是对数据解压的需求,它都能够满足你的要求。

希望本文能够对你有所帮助,更多详细信息请查看SharpCompress官方文档。

5. SevenZipSharp:对7-Zip进行封装提供C#接口

SevenZipSharp是一个对7-Zip进行封装,提供C#接口的开源项目,可以方便地在C#应用程序中使用7-Zip进行压缩和解压操作。

5.1 简介

5.1.1 核心功能

SevenZipSharp主要提供了以下核心功能:

  • 压缩文件
  • 解压文件
  • 加密压缩文件
  • 获取压缩文件信息
5.1.2 使用场景

SevenZipSharp适用于需要在C#应用程序中进行文件压缩和解压操作的场景,例如对文件进行打包、加密以及解压缩等操作。

5.2 安装与配置

5.2.1 安装指导

可以通过NuGet包管理器来安装SevenZipSharp。在Visual Studio中打开NuGet包管理器控制台,并执行以下命令来安装SevenZipSharp:

Install-Package SevenZipSharp
5.2.2 基本配置

安装完成后,在C#项目中引入SevenZipSharp的命名空间:

using SevenZip;

5.3 API 概览

5.3.1 7-Zip操作

SevenZipSharp提供了丰富的API来进行7-Zip操作,下面是一个简单的例子,演示了如何使用SevenZipSharp进行文件压缩和解压操作。

文件压缩示例
// 创建一个压缩文件实例
SevenZipCompressor compressor = new SevenZipCompressor();// 设置压缩级别
compressor.CompressionLevel = CompressionLevel.Ultra;// 设置压缩文件密码
compressor.EncryptHeaders = true;
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressFiles("archive.7z", "file1.txt", "file2.txt");

官网链接:SevenZipSharp

文件解压示例
// 创建一个解压文件实例
SevenZipExtractor extractor = new SevenZipExtractor("archive.7z");// 设置解压文件密码
extractor.Password = "your_password";
extractor.ExtractArchive("destination_path");

官网链接:SevenZipSharp

5.3.2 压缩级别设置

SevenZipSharp允许用户设置压缩级别,以便根据特定需求进行文件压缩。下面是一个设置压缩级别的示例:

// 创建一个压缩文件实例
SevenZipCompressor compressor = new SevenZipCompressor();// 设置压缩级别为最大
compressor.CompressionLevel = CompressionLevel.Ultra;

官网链接:SevenZipSharp

6. SharpArchiver:用于C#的通用归档处理库

6.1 简介

SharpArchiver 是一个开源的 C# 库,用于处理各种归档文件格式,如 ZIP、RAR、TAR 等。它提供了丰富的 API,可以轻松地创建和解压归档文件。

6.1.1 核心功能
  • 创建压缩包
  • 解压缩压缩包
6.1.2 使用场景
  • 在 C# 项目中需要对归档文件进行处理时,可以使用 SharpArchiver 来简化操作。
  • 用于文件备份和恢复功能的实现。

6.2 安装与配置

使用 NuGet 包管理器可以方便地安装 SharpArchiver。

6.2.1 安装指导

在 Visual Studio 中打开 NuGet 包管理器控制台,执行以下命令来安装 SharpArchiver:

Install-Package SharpArchiver
6.2.2 基本配置

安装完成后,你可以在 C# 项目中直接引用 SharpArchiver 的命名空间来使用其功能:

using SharpArchiver;

6.3 API 概览

6.3.1 归档创建

通过 SharpArchiver 可以很方便地创建归档文件,以下是一个示例代码:

using (var archiver = new Archiver())
{archiver.CreateArchive("target.zip", "file1.txt", "file2.jpg", "folder");
}

以上代码创建了一个名为 target.zip 的 ZIP 归档文件,其中包含了 file1.txtfile2.jpgfolder 这三项内容。

6.3.2 归档解压

解压归档文件同样简单,下面是一个简单的示例代码:

using (var archiver = new Archiver())
{archiver.ExtractArchive("source.zip", "destinationFolder");
}

以上代码将会解压名为 source.zip 的归档文件到 destinationFolder 目录。

更多详细信息和案例可以参考 SharpArchiver GitHub 页面。

总结

文件压缩在软件开发中扮演着重要角色,而选择合适的文件压缩库能够帮助开发者高效完成相关任务。通过本文的介绍,读者可以对SharpZipLib、DotNetZip、Ionic.Zip、SharpCompress、SevenZipSharp和SharpArchiver这六个C#文件压缩库有一个清晰的认识,从而更好地根据实际项目需求进行选择和应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558427.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

大模型驱动机器狗——从UMI on Legs到Helpful DoggyBot:分别把机械臂装到机器狗背上、夹爪装到机器狗嘴里

前言 今年十一7天假期期间,一半的时间都在改本博客内的上一篇文章《从Fast-UMI到Diff-Control:分别改进UMI的硬件及其所用的Diffusion policy(含ControlNet详解)》,改完之后,接下来计划要写的博客包括且不限于 第1-2篇&#xff…

CDA数据分析师证书含金量到底如何?

为什么学习数据分析? 2024年,是一个被数据影响的时代。数据,如同无形的燃料,驱动着现代社会的运转。从全球互联网的用户每天产生的2.5亿TB数据,到制造业的传感器、金融交易、医疗病历等领域的海量信息,数据…

小红书爆款首图生成prompt v0.1

由于平时需要在小红书,抖音,公众号等自媒体平台发布一些内容,其中一个需求就是需要一个亮眼的首图,特别是小红书,首图效果好坏会直接决定推流的效果。 受到李继刚老师一系列 Prompt 的启发,创作了下面这个小…

牛客:xay loves count与1LL的用法

xay loves count 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include <bits/stdc.h> using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n;cin >> n;int a[1000005] {0};int cnt[1000005] …

Linux内核启动过程2

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

en造数据结构与算法C# 之 动态规划

动态规划 动态规划和分治法很像&#xff0c;都是拆解问题解决 分治法常用递归算法来写&#xff0c;但是动态规划和分治法的最大不同就是存入值 &#xff0c;AI真方便 钢条切割问题 其实该问题最平常&#xff0c;也是最直接的思想就是先把前项最赚米的方案总结出来&…

JDBC: 连接池

文章目录 没有连接池的现状连接池解决现状问题的原理连接池好处常用连接池的介绍Druid连接池DRUID简介Druid常用的配置参数Druid连接池基本使用API介绍 案例代码 没有连接池的现状 通过下图来分析一下我们目前jdbc程序的结构。 以前使用的jdbc的缺点&#xff1a; 1、操作数据库…

SeaTunnel如何创建Socket数据同步作业?

本文为Apache SeaTunnel Socket Connector的使用文档&#xff0c;旨在帮助用户快速理解和有效利用Socket Connector&#xff0c;助力用户的应用程序实现高效、稳定的网络通信。 Socket是应用层与TCP/IP协议族之间进行通信的中间软件抽象层&#xff0c;它是网络编程的基础&…

Vue工程化结构环境安装及搭建教程 : 之nvm

vue需要的环境&#xff1a; node.js : Node.js和Vue.js通常会一起使用。Node.js作为后端服务器&#xff0c;处理服务器端的逻辑和数据访问&#xff0c;而Vue.js则负责前端用户界面的构建和交互。通过Ajax通信&#xff0c;Vue.js应用程序向Node.js服务器发送请求&#xff0c;并…

扩展、包含、泛化-系统架构师(七十七)

1&#xff08;&#xff09;是系统分析阶段结束后得到的工作产品&#xff0c;&#xff08;&#xff09;是系统测试阶段完成后的工作产品。 问题1 A系统设计规格说明 B系统方案建议书 C系统规格说明 D单元测试数据 问题2 A验收测试计划 B测试标准 C系统测试计划 D操作手…

基于STM32单片机的配电室环境监测系统

本设计了一个基于STM32单片机的配电室环境监测系统。该系统可以实现配电室环境温湿度检测、烟雾浓度检测和火焰信息检测&#xff0c;这主要是为了防止火灾发生&#xff1b;本系统还加入了红外人体检测模块&#xff0c;可以检测配电室周围是否有行人经过&#xff0c;最终将传感器…

极狐GitLab 发布安全补丁版本 17.4.1、17.3.4、17.2.8

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

Autodesk Flame 2025:视觉特效制作解决方案

Autodesk Flame 2025是一款功能强大的视觉特效制作解决方案&#xff0c;由Autodesk公司开发。它提供了出色的性能&#xff0c;为视觉特效艺术家成功完成制作项目提供了所需的交互性和灵活性。 以下是Autodesk Flame 2025的一些主要特点和功能&#xff1a; 高效的三维合成环境&…

基于BERT的深度强化学习求解图上的组合优化问题(未完)

文章目录 Abstract1 Introduction2 文献综述2.1 相关的深度学习方法2.2 基于强化学习的方法3 Methodology3.1 问题定义和预备知识3.2 策略网络架构Abstract 组合优化,如图上的车辆路径和旅行商问题,是NP-hard问题,几十年来一直被研究。已经提出了许多方法来解决这些问题,包…

SSM高校体育器材管理系统-计算机毕业设计源码48197

摘 要 如今计算机行业的发展极为快速&#xff0c;搭载于计算机软件运行的数据库管理系统在各行各业得到了广泛的运用&#xff0c;其在数据管理方面具有的准确性和高效性为大中小企业的日常运营提供了巨大的帮助。在高校体育器材管理系统中&#xff0c;一开始对体育器材的管理…

python迭代器和生成器区别是什么

python中迭代器和生成器的区别 1、共同点 生成器是一种特殊的迭代器。 2、不同点 a、语法上&#xff1a; 生成器是通过函数的形式中调用 yield 或&#xff08;&#xff09;的形式创建的。 迭代器可以通过 iter&#xff08;&#xff09; 内置函数创建。 b、用法上&#x…

加密软件有哪些?2024年十大好用的企业文件加密软件大盘点

随着数字化转型的加速&#xff0c;企业面临的数据安全威胁日益增加。为防止敏感数据泄露&#xff0c;企业文件加密已成为保护公司机密信息的必要手段。以下是2024年十大好用的企业文件加密软件大盘点&#xff0c;帮助企业在复杂的数字环境中确保数据安全。 1.安秉加密软件 安秉…

WPF中的内容控件

控件分类 在第一篇文章.Net Core和WPF介绍中的WPF的功能和特性部分根据功能性介绍了WPF的控件 名称。 在接下来的文章中&#xff0c;将会详细的介绍各个控件的概念及使用。 主要包括&#xff1a; 内容控件&#xff1a;Label、Button、CheckBox、ToggleButton、RadioButton、…

几何建模基础-拓扑结构介绍

1.什么是拓扑&#xff1f; 拓扑是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。它只考虑物体间的位置关系而不考虑它们的形状和大小。 Body对象的拓扑可以理解为面&#xff08;Face&#xff09;与边&#xff08;Edge&#xff09;、边&#xff08; E…

fmql之Linux设备驱动框架

设备驱动框架 正点原子第39章---LED驱动框架 测试 成功&#xff1a; 贴代码 &#xff08;不需要测试APP&#xff09; /***************************************************************Copyright © ALIENTEK Co., Ltd. 1998-2029. All rights reserved.文件名 : le…