13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.txt, .exe, .jpg, .bat, .png, gif, .mp4, .pdf, php, csv...

世の中の拡張子は3文字に溢れています。

拡張子とは、ファイル名の最後につけられる文字列で、そのファイルの形式を示しているものです。

しかし、3文字の拡張子が非常に多いです。

3文字で起こる問題がある

文字数によって発生する問題ってどういうこっちゃと思われるかもしれませんが、
素敵なエンジニアライフを送られている皆様方なら一度は目にするでしょう。

image.png

.htm拡張子。

いや、これはただのhtmlファイルなんですが、私としてはなんだかムズムズします。

image.png

だって私の見知ったhtmlファイルはこっちです。

そう、拡張子に表記ゆれが発生するのです。

image.png

yamlファイルの拡張子に関しては業界全体で表記ゆれが発生しているように思います。
どちらもyamlファイルではあるのですが。

表記ゆれ自体が大きな問題を引き起こすわけではないのですが

  • 命名に迷う
  • 混乱が起こる

などのトラブルの原因になりかねないと思います。
実際、それを問題として解決するためのissueが投げられているのをたまに目にします。

ちなみに、.doc.docxはどちらもMicrosoft Wordのファイルですが、
実は仕様が異なっています。罠すぎる。

どうしてこんなことになってしまったのか

昔のMicrosoftのせい。

むかしむかし、あるところにMS-DOSがありました。

MS-DOSというのは、1981年発売の古のOSです。
古のOSだからこそ、技術面に多くの制約があったため、今では理解できないような変な?仕様がたくさんあったようです。

ちなみに、MS-DOS 4.0 は現在OSSになったらしいです。
よかったらビルドして遊んでみよう(?)
https://qiita.com/reika727/items/32a74226aea427044b41

そのMS-DOSの変な仕様の中には、以下の制限がありました。

ファイル名は“8文字の名前+3文字の拡張子”にする必要がある

この制限は8.3形式とよばれ、Windows3.x、部分的にはWindows 95以降も続くことになるファイル名の仕組みでした。

当然今では長いファイル名も可能になり、8.3形式は考慮する必要がなくなりました。
しかし現在の3文字拡張子は、この慣習が続いたものだと考えられます。

(脱線)今日から使える使えない豆知識

さて、わざわざこんな記事を見に来てくださったみなさんへ、
お礼といってはなんですが、今日から使えない豆知識を授けましょう。

この8.3形式、ファイル名に空白を入れることを許さないものでした。
そう、今のwindowsに存在するProgram Fileは8.3形式において正しくないファイル名なのです。

そのためか、実はProgram FilePROGRA~1という8.3形式のファイル名でも表示されるようになっています

batファイルなどでstartコマンドを利用する場合、空白文字を含むような長いファイル名では正しく動作しません。空白がコマンドを区切る仕組みになっているからです。

$ start C:\Program Files\Google\Chrome\Application\chrome.exe

image.png

""で囲めばいいじゃんと思ったあなたは少し黙っていてください。
実は、C:\PROGRA~1にすると正しく動作します。

$ start C:\PROGRA~1\Google\Chrome\Application\chrome.exe

image.png

初めて知った人は是非この記事にいいねを付けてください。(傲慢)

ただし、この短いファイル名は環境依存です。
もしかしたらPROGRA~1でアクセスできない環境が存在するかもしれない...

結論

やっぱ全部昔のMicrosoftが悪い。

13
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?