1. 项目背景与核心需求
在嵌入式开发领域,Green Hills Software(简称GHS)的集成开发环境(IDE)被广泛应用于航空电子、汽车电子等高可靠性领域。其工程管理方式采用特有的.gpj项目文件格式,开发过程中经常需要批量导入源文件、头文件或库文件。手动逐个添加文件不仅效率低下,在大型项目中(如包含数百个源文件的AUTOSAR项目)更容易出现遗漏或路径错误。
这个脚本工具正是为了解决以下痛点:
- 自动扫描指定目录下的
.c/.h/.s等文件 - 保持原有目录结构关系
- 智能识别文件类型并归类到GHS工程的对应节点
- 支持文件过滤和重复检测
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术实现方案解析
2.1 文件系统遍历算法
采用递归遍历算法处理嵌套目录结构,关键实现逻辑如下:
python复制def scan_files(root_dir, extensions):
file_list = []
for root, _, files in os.walk(root_dir):
for file in files:
if any(file.endswith(ext) for ext in extensions):
rel_path = os.path.relpath(os.path.join(root, file), root_dir)
file_list.append(rel_path.replace('\\', '/')) # 统一使用Unix路径分隔符
return file_list
注意:路径处理时强制转换为Unix风格分隔符,因为GHS工程文件在不同操作系统下都需要使用
/作为分隔符
2.2 GHS工程文件结构解析
.gpj文件本质上是XML格式,典型结构示例如下:
xml复制<project>
<configuration name="Debug">
<fileset name="Source Files">
<file path="src/main.c"/>
</fileset>
<fileset name="Header Fi
