
例如我添加了OLED.h这个文件

但是它的格式却是image file,添加c源文件也是这样。几个文件还好,手动改改,但添加几十个得一个一个改,头都大了,佬们,有没有什么解决办法


下午好🌅🌅🌅
本答案参考通义千问
在使用 Keil uVision5(简称 Keil5)时,如果你发现 .c 和 .h 文件被错误识别为 Image File(即图片文件),这通常是因为文件的 文件扩展名 被误识别或文件关联设置不正确。这种情况会影响代码编辑、编译和调试。
.h 被误写成 .h.jpg 或 .c 被误写成 .c.png。.jpg, .png, .bmp 等)。OLED.h 和 OLED.jpg 同时存在,导致 Keil5 无法正确识别。OLED.hOLED.h.jpg 或 OLED.jpg注意:不要使用中文命名文件,也不要使用空格或特殊字符。
.c 文件 → C Source File.h 文件 → Header File重点:必须对每个错误识别的文件进行此操作,如果文件很多,建议使用方法二。
你可以使用 Python 脚本 或 批处理命令 来批量修改 .c 和 .h 文件的类型。
fix_keil_files.py):import os
import re
# 替换文件中的错误文件类型
def fix_file_type(file_path):
with open(file_path, 'r+', encoding='utf-8') as f:
content = f.read()
# 匹配错误的文件类型(如 "filetype=image")
if re.search(r'filetype=image', content):
content = re.sub(r'filetype=image', 'filetype=C Source File', content)
f.seek(0)
f.write(content)
f.truncate()
# 遍历项目目录下的所有 .uvprojx 文件(Keil 项目文件)
project_dir = r'你的项目路径' # 如:'C:\\MyProject\\'
for root, dirs, files in os.walk(project_dir):
for file in files:
if file.endswith('.uvprojx'):
project_file = os.path.join(root, file)
print(f"Fixing {project_file}")
with open(project_file, 'r+', encoding='utf-8') as f:
content = f.read()
# 找到所有文件项并修改类型
lines = content.splitlines()
new_lines = []
for line in lines:
if 'filetype=image' in line:
line = line.replace('filetype=image', 'filetype=C Source File')
new_lines.append(line)
f.seek(0)
f.write('\n'.join(new_lines))
f.truncate()
注意:请根据实际项目路径修改
project_dir。运行前请备份项目文件!
.uvoptx 和 .uvguix 文件(这些是 Keil 的缓存文件)。.uvprojx 文件,重新加载项目。| 步骤 | 内容 | |------|------| | 1 | 检查文件扩展名是否正确 | | 2 | 手动修改文件类型(适用于少量文件) | | 3 | 使用 Python 脚本批量修改文件类型(推荐用于大量文件) | | 4 | 清理缓存并重新加载项目 |
.c/.h 和 .jpg/.png 文件,以免混淆。如有需要,我可以提供一个完整的 Python 脚本模板,帮你一键修复 Keil5 中的所有错误文件类型。欢迎继续提问!