前言
在使用 Borland C++ Builder (BCB) 或 Delphi 開發專案時,會產生大量具有特定副檔名的檔案。了解這些副檔名的用途,有助於專案管理、版本控制設定(如 .gitignore)以及問題排查。本文整理官方文件與實務經驗,提供完整的副檔名對照參考。
核心專案檔案
| 副檔名 | 適用產品/版本 | 用途說明 |
| .dpr / .bpr | Delphi / BCB | 專案主檔案,包含單元引用與主程式入口 |
| .dof / .bcf / .conf / .kof | 各版本 | 專案選項設定檔(編譯器、連結器、路徑等) |
| .cfg | Delphi 4+ / BCB 4+ | 命令列編譯器預設選項 |
| .dproj / .cbproj | Delphi 2005+ / BCB 2006+ | MSBuild 專案檔(XML 格式) |
| .groupproj / .bdsgroup | RAD Studio | 專案群組檔案 |
桌面與環境設定檔
| 副檔名 | 適用產品/版本 | 用途說明 |
| .dsk / .dst | Delphi 1~7 / BCB 1~6 | 桌面配置(視窗位置、斷點、監視運算式等) |
| .dmt / .bmt | 各版本 | 選單範本檔 |
| .dci / .dci | Delphi 3+ / BCB 3+ | 程式碼範本 |
| .dro | Kylix | 物件儲存庫設定 |
編譯產出與連結相關
| 副檔名 | 適用產品/版本 | 用途說明 |
| .exe | 所有 | 可執行檔 |
| .dll / .bpl | 所有 | 動態連結庫 / 運行時套件 |
| .obj / .o | 所有 | 目標檔 |
| .lib / .a | 所有 | 靜態連結庫 / 導入庫 |
| .tds / .tvs | 各版本 | 偵錯符號資訊 |
| .map | 所有 | 連結器映射檔 |
| .ilm / .tds | BCB | 增量連結中間檔 |
| .res / .dcr | 所有 | 資源檔 / 元件圖示資源 |
單元與原始碼檔案
| 副檔名 | 語言 | 說明 |
| .pas / .dpu | Delphi | 原始碼 / 編譯後單元 |
| .cpp / .h / .hpp | C++ | 原始碼 / 標頭檔 |
| .c / .h | C | 原始碼 / 標頭檔 |
| .asm / .s | 組合語言 | 組語原始碼 |
| .rc / .rc2 | 資源腳本 | 資源定義檔 |
| .dfm / .xfm / .nfm | 表單 | 表單/資料模組/框架 設計時資源(二進位/文字) |
預編譯標頭與快取
| 副檔名 | 說明 |
| .pch / .csm | 預編譯標頭檔 / 符號快取 |
| .hdr | 預編譯標頭停止點標記 (#pragma hdrstop) |
| .#?? | 編譯器暫存檔 |
版本控制建議 (.gitignore 範例)
# 編譯產出
*.exe
*.dll
*.bpl
*.obj
*.lib
*.map
*.tds
*.res
*.drc
# 專案使用者設定(個人偏好,不建議提交)
*.dsk
*.dst
*.dmt
*.bmt
*.dci
*.local
*.identcache
# 暫存與備份
*.~*
*.bak
*.tmp
*.#??
*_history/
# 預編譯標頭
*.pch
*.csm
*.hdr
結語
熟悉這些副檔名不僅能提升專案管理效率,也能在團隊協作時避免不必要的檔案衝突。建議根據團隊使用的 RAD Studio 版本,調整上述忽略清單。