Monthly Archives: 9月 2012

Windowsでconやprnという名前のファイルを作成する方法

Windowsでprnという名称のファイル作成

Windowsでprnという名称のファイル作成

「何個知ってた?聞いた時驚くけど実はどうでもいい事まとめ」に「Windowsでは『prn』というフォルダを作れない」という項目があった。Windowsでは一般的にprnとかconというファイルは作れないと言われている。Wikipediaの「予約デバイス」にもそのように書かれている。これはMS-DOS時代の予約デバイス名の仕様を受け継いでいるためで、そのころからの古参プログラマや、Windowsの開発者にはよく知られていることだ(ちなみに、conはコンソール、prnはプリンタを示すデバイスで、ちょっと印刷するのに type foo.txt > prn などとやることもあった)。

しかし、実はこれらのファイルを作ることは可能だ。方法は簡単で、コマンドラインでパスをUNCで指定するだけだ。こんな感じで。

copy NUL \\.\C:\User\username\Desktop\prn

この方法で、conもNULも作ることができる。どうやらWindows NT時代にPOSIX準拠にするために必要だったらしいですよ。

しかし、このファイル、作ったはいいけど、扱いが容易ではない。エクスプローラから削除しようとしてもこういうエラーが出る。ちょっと普段見ることがない内部エラーが見えて面白い。

prnを削除できない

やっかいなファイル名なのでよほどの理由が無い限り使わないのが正解だと思う。ちなみに削除もUNCパスで指定すれば可能だ。

del \\.\C:\User\username\Desktop\prn

どうでもいいことは楽しいですね。

こういう謎の仕様としては、かつてのMacOSで「レモン」と「メロン」というファイルを同じフォルダに作れなかった、という仕様も好きです。