拡張子一覧要望: よく競合しないものだと思う − 河端善博の .TEXT でウェブログ

実際、競合してるし。

とりあえずレジストリを確認しやすくするためのスクリプトを書いてみました
レジストリの拡張子の関連付け情報を読み取り、指定された拡張子(または関連付けられているプログラム名)に関する情報を表示します。例えば、拡張子 txt を指定して実行した場合は以下の通り。


[]C:\>queryext txt[]
[]Microsoft (R) Windows Script Host Version 5.6[]
[]Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.[]

[]txt : テキスト ドキュメント []<txtfile>
[] Content-Type: text/plain[]
[] Visual Studio で編集(&E) : "C:\Program Files\Microsoft Visual Studio\Common\IDE\IDE98\devenv.exe" "%1"[]
[] open : C:\WINDOWS\system32\NOTEPAD.EXE %1[]
[] print : C:\WINDOWS\system32\NOTEPAD.EXE /p %1[]
[] printto : C:\WINDOWS\system32\notepad.exe /pt "%1" "%2" "%3" "%4"[]

ただし、ここで表示されている Content-Type: は、"HKEY_CLASSES_ROOT\<拡張子>\Content Type" のものです。実は、これを見ても実はあまり役に立ちません。サーバから送られてきた Content-Type に応じて IE がファイルタイプを判断し処理方法を決定する場合には、"HKEY_CLASSES_ROOT\<拡張子>\Content Type" ではなく、"HKEY_CLASSES_ROOT\MIME\Database\Content Type" を見ています*1
なお、個人的には、拡張子や Content-Type の一覧を整備するよりは、IE がきっちりと Content-Type に応じてファイルを処理するようになって欲しいと思う今日この頃です。

*1:厳密には、 IEがファイルタイプを決定する要因は、それ以外にもいろいろあります。http://www.microsoft.com/japan/technet/prodtechnol/winxppro/maintain/sp2brows.mspx#EZ5AG を参照。