整理了一下用Delphi作的程序的源代碼中常見的文件擴展名,並給出了這些文件擴展名的意義,以便源代碼管理時作為參照,擴展名以字母為序(不需要進源代碼庫不表示不需要進庫)。
~*
Delphi生成的備份文件,在版本控制庫及發布代碼中不應該出現這些文件,如果修改了某個文件卻因某些原因沒有保存的話,可以嘗試使用這些文件恢復。
bmp/wmf/emf/gif/jpg/pcx/png/tiff/ico/cur/ani
圖形/圖標/光標文件,這些文件如果使用到了也需要進源代碼庫。
bpg
工程組文件(Borland Project Group File),文本格式,需要進源代碼庫;bpg文件其實是makefile格式,要編譯bpg文件可以使用make工具,語法如下:
make -f %FileName%
bpl
運行時刻包文件,是一種Borland定義的特殊格式的dll,簡單的說與普通dll的差別就是bpl有一些共用的部分只使用了同一引用,而dll使用了多份拷貝,因此才會使得bpl與dll的某些方面的差別很大。
此類型文件是否進源代碼庫需要根據其用途來判斷,一般情況下源代碼編譯出來的bpl無需進庫,但是如果此bpl是IDE的擴充插件,可能也需要進庫,此外如果第三方組件沒有提供源碼僅提供了此文件,則此文件也需要進源代碼庫。
bpr/bpf/bpj/h/cpp
BCB(Borland C++ Builder)相關文件,如果工程使用了BCB,則需要進源代碼庫,但在我們的工程中應該不需要這些文件。
cab
ActiveX控件包文件,如果是工程使用到的第三方控件,則需要進源代碼庫。
cfg
編譯工程時的配置文件。dcc32.exe程序編譯工程時使用cfg文件的順序為:首先使用dcc32.exe同目錄下的dcc32.cfg文件,然後使用待編譯文件同目錄下的dcc32.cfg文件,最後使用待編譯文件同目錄下的同名的cfg文件,為了保證在不同的機器環境下編譯的結果的同一性,此文件需要進源代碼庫。
dci
Code Insight文件,保存了代碼模板(Code template),一般情況下無需進源代碼庫。
dcp
包含了包(Package)的頭信息和包中單元文件的dcu/dpu文件的二進制映像文件,dcp與bpl的差別可以用dcu與dll/exe的差別來理解,delphi編譯使用到包的文件時需要此包的dcp文件,此文件可由源代碼生成,一般無需進源代碼庫。
dct
Component Template文件,如果工程使用到了component template則需要進源代碼庫。
dcu/dpu
單元(unit)對應的二進制映像文件,dpu是Linux系統下的dcu格式。dcu/dpu是pas的二進制的中間格式,相應的dfm/xfm文件沒有鏈接進dcu/dpu中。一般情況下無需進源代碼庫,除非是在第三方庫以dcu形式提供時。// 本文轉自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=1025&d=dwni64
/>
ddp/dti
Diagram文件。Delphi 7提供了Diagram功能,可以在單元文件中使用圖形化的描述,此類型文件對編譯源代碼無影響,但是如果使用了diagram功能,則此文件對理解單元可能會比較有用,在我們的工程中應該無需將這些文件進源代碼庫,即使有這些文件也可能是因為切換到diagram頁卡生成的。
dfm/xfm
窗體文件。xfm是交叉平台源代碼使用的窗體文件。dfm/xfm有兩種格式,一種是二進制格式,一種是文本格式,為了便於版本控制,需要使用文本格式,文本格式也存在多種格式,Delphi7的文本格式的dfm/xfm保存如中文等使用的是unicode編碼值,而Delphi7之前的使用的直接就是ansi,Delphi7支持打開原有格式的dfm文件。需要進源代碼庫。
dll/so
動態鏈接庫文件。so為Linux下的動態鏈接庫文件。如果是編譯出來的dll/so文件,無須進源代碼庫,如果是工程使用到的第三方庫則需要進源代碼庫。
dmt
Menu Template文件,一般無需進源代碼庫。
dof/kof
Delphi編譯工程時的選項文件(Project options file),kof是Linux平台下的dof文件。此文件包含了Delphi的Project->Options的信息,也包含了編譯配置的信息,此外還包含了目錄,鏈接,版本,條件開關等等。一般情況下dof是同名cfg文件的超集(dof與cfg的格式不一樣)。文本格式,為了保證在不同的機器環境下編譯的結果的同一性,此文件需要進源代碼庫。
dpc/pce
包集合文件和包集合編輯文件。Delphi支持將多個包(Package)並入到一個文件中,使用此格式文件可以便於分發多個包給其他開發者,使用此格式可以很簡便的配置IDE環境。此文件需要進源代碼庫。
dpk/dpkw
包文件。dpkw是交叉平台下的dpk文件。包文件列出了包所包含的文件和包所依賴的包,以及包描述信息,包編譯選項等。文本格式,需要進源代碼庫。
dpr
工程文件。文本格式,需要進源代碼庫。
drc
包資源文件,提供如組件圖標等包所需的資源。二進制格式,如果是包使用到的dcr則需要進源代碼庫。
drl/dro
Repository文件。Delphi提供了repository功能,可以使開發人員共享開發模板,合理使用repository功能可以加快開發速度,開發組配置好共享的repository就可以使用repository了。如未使用到repository功能則無需進源代碼庫。
dsk
Desktop文件。保存了IDE的布局(也可能包含浏覽記號,視乎IDE的設定),為防止開發人員的IDE布局設置。文本格式,此文件不應進源代碼庫。
exe
可執行文件。如非第三方組件,無需進源代碼庫。
hlp/cnt/toc/chm
幫助文件。需進源代碼庫。
idl
接口定義語言文件。IDL定義了接口,COM和CORBA開發經常會使用到IDL。文本格式,需進源代碼庫。
inc
Include文件。與C++的include不一樣。可嵌入Delphi的源代碼文件中,Delphi編譯是遇$I到include文件時相當於Copy一份inc文件的內容到當前位置,一般用於提取一些重復的每個單元都需要定義的內容,或用於定義通用的編譯器指示字條件,甚至可以使用Delphi的inc機制實現C++的范型(可惜不能支持操作符重載)。文本格式,需進源代碼庫。
inf/reg
注冊文件。文本格式,需進源代碼庫。
ini
初始化配置文件。如果是做為初始設定的配置文件,則需要進源代碼庫,如果是運行期生成的配置文件,則無需進源代碼庫。
int
單元的接口部分定義文件。將Delphi的單元的Interface部分提取出來的文件,此類文件類似C++的頭文件,但是僅供開發人員參考單元接口部分定義,不參與編譯。文本格式,無需進源代碼庫。
lib
導入庫文件。供C++使用的dll的導入庫文件,Delphi無需lib文件。如果需要給C++開發者使用某些dll,則需要提供相應的lib文件。可進源代碼庫。
log
日志文件。文本格式,無需進源代碼庫。
map
可執行文件布局文件。文本格式,無須進源代碼庫。
mdb/dbf/gd*/db/mdx/dbt/ndx/mb/val/qbe/px/x*/y*
桌面數據庫文件。依據工程決定是否需要進源代碼庫。
obj/o
目標文件。二進制格式,如為源代碼$L鏈接的目標文件,需要進源代碼庫。
ocx
Activex控件文件。二進制格式,如為源代碼使用到的第三方控件,則需要進源代碼庫。
pas
單元文件。文本格式,需要進源代碼庫。
rc
資源腳本文件。經使用brcc32.exe編譯後成為res文件。文本格式,需要進源代碼庫。
res
資源文件。包含了程序的主圖標,字符串表,圖標,圖形等等。二進制格式,需要進源代碼庫。
rps/dfn
多國語言翻譯文件。DelphiI的DE提供了一種多國語言支持機制。dfn為二進制格式,如果工程采用Delphi提供的此機制國際化,則需要將這些文件進源代碼庫。
rsm
調試符號信息文件。一些額外的調試工具需要調試符號信息,如果要支持這些工具,則需要提供rsm文件。二進制格式,無需進源代碼庫。
sql/tql
SQL語句和SQL模板文件。二進制格式,需進源代碼庫。
stat
工程統計信息文件。文本格式,無需進源代碼庫。
tds
外部調試符號表文件。無需進源代碼庫。
todo
Todo列表文件。無需進源代碼庫。
upg
升級信息文件。無需進源代碼庫。