\r\n\r\n

Windows 10では、1974年に予約されたこれらのファイル名を使用することはまだできません。

Windowsは、特定のファイル名を「予約」し、どこにも使用できないようにしています。ファイル名を「con.txtファイル」「AUX MP3」と呼ぶのは忘れてください。これはすべて、1974年に行われた選択と、永久的な後方互換性を求めるマイクロソフトの意向によるものである......。

Windowsは、特定のファイル名を「予約」し、どこにも使用できないようにしています。ファイル名を「con.txtファイル」「AUX MP3」と呼ぶのは忘れてください。これはすべて、1974年に行われた選択と、永久的な後方互換性を求めるマイクロソフトの意向によるものだ。

利用できないファイル名

マイクロソフトは、予約ファイル名の公式リストを提供しています。

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

なお、これらのファイル名には拡張子は付けられません。ですから、「con.txtファイル」「con.jpg社」「契約書ファイル」というファイル名は付けられません。また、Windowsは大文字と小文字を区別しないので、conであろうが、conであろうが、conであろうが、Windowsはこの名前を使うことを許さない。

自分で試すことができます。メモ帳で「con.txtファイル」または「lpt6.txt」という名前で保存してみてください。また、エクスプローラでファイル名を変更することもできますが、これはWindowsではできません。

もちろん、Windowsは他の方法でもファイル名を制限している。また、以下のような特殊文字を名前に使用することはできません。詳しくは、マイクロソフトの公式ドキュメントをご覧ください。

1974年に何が起こったのか、なぜ私たちはそれを気にしなければならないのか。

今は2018年で、このエラーメッセージは1974年からの間違いです。最新のWindows 10でも見られるこの制限は、BEFORE STAR WARSまでさかのぼります。このバグはウォーターゲート事件と同じくらい古いものだ pic.twitter.com/pPbkZiE57t

- フォーン (@Foone) 2018年11月3日

最近@FooneがTwitterで説明したように、この問題は1974年までさかのぼる。UNIXでは、「すべてがファイル」(現在のLinuxなどUNIX系OSでも同様)ハードウェアデバイスは、最初のプリンターは/dev/lp0、コンソールは/dev/ttyといった特別なパスで表現されていました。

1974年にCP/Mオペレーティングシステムに同じコンセプトが追加された。残念ながら、CP/Mはメモリもハードディスクもほとんどないコンピュータ用に設計されている。複数のディスクを使用し、ディレクトリを持たないため、デバイスを表す特殊なファイルは、各ディスクのどこにでも効率よく表示された。

そこで、テキストファイルを保存する際に、テキストエディタに「プリンタデバイスに保存する」と指示すると、プリンタデバイスから印刷されるようになります。しかし、テキストエディタなどは".txt "などの拡張子をつけたがるので、CP/Mはこれらのデバイスファイルの拡張子を無視するだけです。つまり、テキストエディタがプリンタデバイス名の後に".txt "を付けて保存しようとしても、CP/Mはプリンタデバイスを参照していると判断して、ファイル拡張子を無視するだけなのです。これでどのアプリケーションでも機能が正しく動作するようになりました、素晴らしいです。

確かに、汚いハッキングだが、誰が気にする?まあ、CP/Mが引っかかったんですよ。1983年にPC-DOS 2.0が登場し、ディレクトリが追加されたが、既存のDOSソフトとの互換性を考え、デバイスファイルは特別なデバイスフォルダではなく、すべてのディレクトリに表示することにした。

WindowsntはDOSをベースにしていませんが、Windows95のアプリケーションとの後方互換性を確保するために開発されました。もちろん、Windows 7でも同様です。

40年以上たった今でも、「con.txtファイル」や「AUX MP3」というファイル名は付けられません。この機能を使うかもしれない古いプログラムとの互換性を維持するために、Windowsはこの機能を使うことができないのです。マイクロソフトがいかに後方互換性に強くこだわっているかを示す良い例です。

更新しました。CP/Mではもともと末尾にコロンが必要で、つまり「CON」ではなく「CON:」と入力しなければならなかったと聞いている。どうやら、この問題は1981年にMS-DOSとPC-DOSがリリースされ、コロンが不要になったことが本当の始まりのようだ。DOSでは、"CON: "の代わりに "CON "を使うことができます。だから、CP/MよりもDOSの方が責められるべきかもしれない。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ