#?SuikaWiki/0.9 * file: 以下のさまざまな表現形式 [8] 特に [[Windoze]] 上の [[UA]] において、 file: 以下のあらわしかたには様々なものがありました。 ,[[UA]] ,file: ,== ,== ,file:// ,== ,== ,file:/// ,== ,== ,file://localhost/ ,== ,== ,メモ , ,C|/ ,C:/ ,"C:\\" ,C|/ ,C:/ ,"C:\\" ,C|/ ,C:/ ,"C:\\" ,C|/ ,C:/ ,"C:\\" , ,M$IE2.0 ,○ ,○ ,○ , , , ,○ ,○ ,○ , , , , [[#form:',%text(id=>ua);,%check;,%check;,%check;,%check;,%check;,%check;,%check;,%check;,%check;,%check;,%check;,%check;,%text(id=>condition,size=>5); %submit(label=>"追加");':',%text(source=>ua);,%iif(source=>_no1,true=>○);,%iif(source=>_no2,true=>○);,%iif(source=>_no3,true=>○);,%iif(source=>_no4,true=>○);,%iif(source=>_no5,true=>○);,%iif(source=>_no6,true=>○);,%iif(source=>_no7,true=>○);,%iif(source=>_no8,true=>○);,%iif(source=>_no9,true=>○);,%iif(source=>_no10,true=>○);,%iif(source=>_no11,true=>○);,%iif(source=>_no12,true=>○);,%text(source=>condition);':'%require(ua);']] *** file://C|/*/* [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] *** file://C:\*\* -[54] ''file://C:'': '''対応。''' [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] ** file:///* [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] *** file:///C|/*/* - [4] ''Infomosaic/2.0.0 Final Beta J4 (Windows x86)'': 対応。 - [6] '' MosaicView/2.0009 Win32 NEC/9'': 対応。 [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] *** file:///C:\*\* - [10] ''MSIE 2.0'': 対応。アドレスバーはすぐに >>9 に書き換えられる。 [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] ** file://localhost/* - [1] しばしば使われる。 - [5] [[JustView]] [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] ** file://network-host-name/* - [2] [[WinIE]] では、 [CODE[\\network-host-name\*]] の参照として使用出来る。 - [3] [[Mozilla]] on [[Win32]] では不可。 [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] ** file:C:\*\* - [9] ''Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)'': 対応。この形式を実装したのは、おそらく M$IE が最初でしょう。 [[#form:'%text(id=>ua,label=>"[[UA]]"); %check(label=>対応している,default,id=>support); %text(id=>condition,label=>詳細,size=>10); %submit(label=>"追加");':'-[%index;] \'\'%text(source=>ua);\'\': \'\'\'%iif(source=>support,true=>対応。,false=>未対応。);\'\'\'%text(source=>condition);':'%require(ua);']] * Mosaic Netscape 0.9 Beta (Win16 版 on Win95) [13] 実験してみますた。 [CODE[file:///]] でドライブ一覧 ([CODE[A|/]] とかが並んでる。) が出てきます。 Location: 欄に [CODE[file:///C|/]], [CODE[file:///C:/]], [CODE[file:///C%7C/]] と入力すると望んだものが出てきますが、 [CODE[file:///C:\]] とすると busy で死んでしまいました。 [CODE[file://]] はだめでした。 - [45] >>13 NN 2.01 でもやっぱり固まります。 [[#comment]] * メモ - [11] [CODE[file:/path/to/something]] - [12] ''Another HTML-lint : Explanation'' ちょっとだけ参考になる例があります。 - [14] [[Lynx]] では [[HOME]] を表す [[~]] が使えます。 (''URL Schemes Supported in Lynx'' ) - [15] [SAMP(URI)[file://\\host\sharename\dir\file]] (WinIE) - [16] ''8-1. Windowsパス名の落とし穴'' : [[Windows]] の[[ファイル名]]の色々な表現について。この記事は直接 [CODE(URI)[file:]] の問題を扱ったものではありませんが、余り気にせずに実装すると [CODE(URI)[file:]] URI でも同じ問題を抱えることになります。 - [17] >>16 の問題が広く取り上げられた例として、 [CODE[[[CON]]]] [CODE[CON]] 問題がありました。 - [18] ''スラッシュドット ジャパン | c:\auxでIEがクラッシュする脆弱性'' - [19] [[Un|x]] でも、 [[Mozilla]] で [CODE(URI)[file:///dev/zero]] を見ようとすると困ったことになるとか、同様の問題があったりもします。 - [20] 流石に [[WinIE6.0]] でも Mozilla 1.4 でも、 [SAMP(URI)[file:///?/c:/windows/]] とか [SAMP(file)[\\?\c:\windows]] とかは機能しないみたい。 - [44] NN2 ですが、 [CODE(URI)[file:///c:/]] と [CODE(URI)[file:///C|/]] は、得られる効果は同じですが、違うものとして扱われているようです。 (redirect みたいな関係にはないようです。) [SAMP[ディレクトリ /C%3A]] とか [SAMP[/%7C]] とか「ちゃんと」表示されます。 - [48] 相対 URI [SAMP(URI)[../D|/foo/]] (基底 [SAMP(URI)[file:///C|/]]) のような表現が使える実装もあるそうです。いやいや、これは URI 一般構文から見ればぜんぜん不思議でなく、むしろこうかけなければなりませんが。 [53] Un|x 版 Mozilla 1.2.1 ですが、[CODE(ABNF)[authority]] は常に無視して [CODE(URI)[localhost]] であるかのように扱ってくれます。何か変ですし、 [CODE(URI)[/]] が3本のつもりで2本にしてしまっても間違いに気づかずに変な結果が出て萎えます。 他の版でも同様な結果だったような気がしますがたしかめていません。とりあえず手元の版ではこうなりました。 ([[名無しさん]] [WEAK[2004-05-10 05:13:16 +00:00]]) [[#comment]] * Windoze の特殊フォルダの表現 [41] [[Windoze]] ([[WinIE]]) では、特殊フォルダをあらわす次のような形式 ([SAMP(URI)[file:///::{[VAR[clsid]]}]]) が使えます。 この機能は遅くても [[Win2k]] で実装されています。 例: :[[MyDocument]]:[SAMP(URI)[file:///::%7B450d8fba-ad25-11d0-98a8-0800361b1103%7D]] :[[MyComputer]]:[SAMP(URI)[file:///::%7B20D04FE0-3AEA-1069-A2D8-08002B30309D%7D]] :[[NetworkNeighborhoods]]:[SAMP(URI)[file:///::%7B208D2C60-3AEA-1069-A2D7-08002B30309D%7D]] フォルダによっては [[CLSID]] 表現ではなく、 [[shell:]] scheme が使用されます。 - [52] [[desktop.ini]] では [CODE(URI)[file://Folder Settings\folder.htt]] とか [CODE(URI)[file://folder.htt]] とか書けるらしいです。。。 [[#comment]] * memo - [42] ほとんど (すべて?) の実装では、[[ディレクトリ]]・[[フォルダ]]の最後に [CODE(URI)[[[/]]]] があってもなくても同義と解釈します。 - [43] [[ハードリンク]], [[シンボリックリンク]]は多分そのシステムでの普通の扱いどうよう追いかけてくれます。[[ショートカット]], [[エイリアス]], [[シャドウ]]などについても同様の実相があるかもしれません。 (ないかもしれません。) - [46] [[perl]] の実装である [CODE(perl)[URI::file]] は、 [[authority]] で機器名その他 (DOS のドライブ名とか。) を書くのは良い考えじゃないか? と述べています。このモジュールは意図的に [SAMP(URI)[file:/usr/bin/perl]] みたいな書き方を使ってるみたいです。 - [47] [SAMP(URI)[ile://./backofficestorage//MBX//Calendar]] ([[M$]]) - [49] [[w3m]] では、使える場面は限られますが、変数 [VAR(URI)[$LIB]] が使えます。例: [SAMP(URI)[file:///$lib/foo/bar]] - [50] また、 w3m にはやはり限られますが、 [CODE(URI)[cgi-bin]] という仮想ディレクトリを設定で作れます。 [SAMP(URI)[file:///cgi-bin/foo.cgi]] を [SAMP(file)[/path/to/foo.cgi]] に対応させられます。 - [51] そして注目すべきは、 w3m の [[LocalCGI]] 機能の都合上、 [CODE(URI)[file:]] URI でも[[問合せ文字列]]が使われるのです。