对于Windows文件类型,是" Application.File"重大?

时间:2013-08-27 12:12:43

标签: windows file-association

在Windows上,我看到Python和许多其他程序使用Python.File的文件类型名称约定,带有一个点,而不是ApplicationFile(没有点),我和#我们也见过很多。点是否重要?为什么?

我正在处理项目,它将自己的文件类型添加到注册表中,并希望做正确的事情,并知道为什么它是正确的。

编辑:我指的是文件类型而不是(直接)文件扩展名。要继续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" %*

这是我之后文件类型的最正确命名(在最后一个示例中为=的左侧,在第一个示例中为右侧)。

1 个答案:

答案 0 :(得分:2)

这些名称是文件的ProgIDs。它们通常(尽管不是必需的)也是COM对象的ProgID,它实现各种shell扩展接口来操作该文件类型;在这种情况下,根据将提供对象的COM类型库的名称,将对象LibraryName.ClassName命名为常规(尽管也不是必需的)。

如果您只想让行为“运行此exe并在argv []中传递文件名”,则不需要COM对象,但最好选择一个对此目的有意义的名称,如果您想要更复杂的功能(使用已经运行的实例打开,为搜索提供额外的元数据等)。它实际上并不是必需的(无论如何都要分别指定各种Shell Extension Handlers),它只是整洁。< / p>