Delphi 與 C++Builder 專案開發過程中會產生大量不同副檔名的檔案。釐清哪些檔案需納入版本控制(Git/SVN),哪些為編譯產物可忽略,對團隊協作與持續整合至關重要。本文整理常見副檔名用途與建議管理策略。
lib/ 目錄統一管理| 副檔名 | 說明 | 版控建議 |
|---|---|---|
~* | Delphi 自動備份檔 | ❌ 忽略 |
bmp/wmf/emf/gif/jpg/png/ico/cur/ani | 圖片/圖示/游標資源 | ✅ 納入(專案使用者) |
bpg | 專案群組檔 | ✅ 納入 |
bpl | 執行期套件(特殊 DLL) | 視情況:自編譯❌、IDE 外掛/無原始碼第三方✅ |
bpr/bpf/bpj/h/cpp | C++Builder 專案相關 | 專案用到 BCB 才納入 |
cab | ActiveX 控制項封裝 | 第三方控制項✅ |
cfg | 編譯器設定檔 | ✅ 納入(確保跨機器編譯一致) |
dci | Code Insight 程式碼模板 | ❌ 個人設定 |
dcp | 套件符號資訊(對應 dcu) | ❌ 可由原始碼產生 |
dct | 元件模板 | 專案使用者✅ |
dcu/dpu | 單元編譯中間檔 | ❌ 忽略(第三方僅提供 dcu 例外) |
ddp/dti | Modeling 圖表檔 | ❌ 非必要 |
dfm/xfm | 表單定義檔(二進位/文字) | ✅ 納入(建議設為文字格式) |
dll/so | 動態連結庫 | 自編譯❌、第三方✅ |
dmt | 選單模板 | ❌ |
dof/kof | 專案選項檔 | ✅ 納入(跨機器一致性關鍵) |
dpc/pce | 套件集合檔 | ✅ 納入 |
dpk/dpkw | 套件原始碼 | ✅ 納入 |
dpr | 專案主檔 | ✅ 核心檔案 |
drc | 套件資源檔 | 套件使用者✅ |
drl/dro | Repository 範本 | 使用共享範本才納入 |
dsk | IDE 桌面版面配置 | ❌ 個人設定 |
exe | 執行檔 | ❌(第三方工具例外) |
hlp/cnt/toc/chm | 線上說明檔 | ✅ 納入 |
idl | 介面定義語言檔 | ✅ COM/CORBA 專案納入 |
inc | Include 檔($I 引入) | ✅ 納入 |
inf/reg | 註冊/安裝資訊檔 | ✅ 納入 |
ini | 初始化設定檔 | 設計時預設值✅、執行期產生❌ |
int | 介面定義摘要檔 | ❌ 僅供參考 |
lib | C++ 導入庫 | 提供給 C++ 使用者才納入 |
log | 日誌檔 | ❌ |
map | 連結對應檔 | ❌ |
mdb/dbf/... | 桌面資料庫檔 | 視專案需求 |
obj/o | 目標檔 | $L 連結的目標檔✅、其餘❌ |
ocx | ActiveX 控制項 | 第三方✅ |
pas | Pascal 單元原始碼 | ✅ 核心檔案 |
rc | 資源腳本 | ✅ 納入 |
res | 編譯後資源檔 | ✅ 納入(含主圖示、版本資訊) |
rps/dfn | 多國語言翻譯檔 | 使用 ITE 國際化才納入 |
rsm | 偵錯符號 | ❌ |
sql/tql | SQL 腳本/模板 | ✅ 納入 |
stat | 專案統計資訊 | ❌ |
tds | 外部偵錯符號 | ❌ |
todo | 待辦事項清單 | ❌ |
upg | 版本升級資訊 | ❌ |
# Delphi/C++Builder 編譯產物
*.dcu
*.dpu
*.bpl
*.dcp
*.exe
*.dll
*.so
*.map
*.tds
*.rsm
*.log
*.stat
*.~*
*.dsk
*.dci
*.identcache
# 備份檔
*.bak
*_backup.*
# 本地設定
*.local
*.user
建立標準化的檔案管理規範,能讓團隊專注於業務邏輯開發,避免「我的機器能編譯、你的卻不行」等環境差異問題。