2013-08-27 37 views
2

在Windows上,我看到Python和許多其他程序使用Python.File的文件類型名稱約定,帶有一個點,而不像ApplicationFile(無點),這也是我見過的。這個點有意義嗎?做什麼的?對於Windows文件類型,「Application.File」中的點是否顯着?

我正在開發一個項目,它將自己的文件類型添加到註冊表中,並且希望做正確的事情,並且知道爲什麼它是正確的。

編輯:我指的是文件類型,而不是(直接)文件擴展名。要繼續使用Python例如,文件協會(擴展)是:

C:\>assoc | find ".py" 
.py=Python.File 
.pyc=Python.CompiledFile 
.pyo=Python.CompiledFile 
.pyw=Python.NoConFile 

,它的文件類型是:

C:\>ftype | find "python" 
Python.CompiledFile="C:\Python32\python.exe" "%1" %* 
Python.File="C:\Python32\python.exe" "%1" %* 
Python.NoConFile="C:\Python32\pythonw.exe" "%1" %* 

它的文件類型後,我最正確的命名(最後一個例子中=的左側,右側第一個)。

+0

不,它們並不重要,僅僅是一個約定。沒有點的ProgID的例子是txtfile和exefile。啓動Regedit.exe來看看。 –

+0

@Hans,我看過和看過txtfile和python.file,這就是爲什麼我很好奇。我看到兩個公約,並且正在尋求理解爲什麼。 –

回答

2

這些名稱是文件的ProgIDs。它們通常(儘管不是必需的)也是COM對象的ProgID,它實現了各種外殼擴展接口來操作該文件類型;在這種情況下,基於將要提供對象的COM typelib的名稱,傳統的(儘管再次不需要)命名對象LibraryName.ClassName。

如果你只是想讓這個行爲「運行這個exe文件並在argv []中傳遞文件名」,那麼這個COM對象就不是必須的了,但是,選擇一個合適的名字是很好的做法,如果你想要更復雜的功能(打開一個已經運行的實例,爲搜索提供額外的元數據等)。它實際上並不是必需的(無論如何你都可以指定各種Shell Extension Handlers),它只是整潔。

相關問題