Why is a drive letter permitted in front of UNC paths (sometimes)?

Raymond Chen

A little-known quirk is that the file system accepts and ignoresa drive letter in front of a UNC path.For example, if you have a directory called\\server\share\directory, you can say

dir P:\\server\share\directory
and the directory will be listed to the screen.The leading P: is ignored.

Why is that?

Rewind to 1984 and the upcoming release of MS-DOS 3.1,which added networking support.Up to this point, all fully-qualified file specificationsconsisted of three components:A drive letter, a path, and a file name.Many programs relied on this breakdown and did things like“helpfully” prepend a drive letter if it looks like you“forgot” one.For example, if you told it to save the results to\\server\share\file.txt it would say,“Oh dear, that’s not good, the user forgot the drive letter!I’ll put the current drive in front to make things better,”resulting inC:\\server\share\file.txt.Other programs would prompt you with“Please enter a drive letter”,and you couldn’t say “No, there’s no drive letter, justtake the path and use it.”They insisted on a drive letter,and you darn sure better give them one.

(Compare the Unix programs that “helpfully” rewrite//server/volume/file as/server/volume/file because they “know”that consecutive slashes collapse,unaware of the special exception for two leading slashes.)

In order to retain compatibility with programs thatprovided this sort of “unwanted help”,the designers of the networking support in MS-DOSdecided to allow the strange syntax C:\\server\share\directoryand treat it as if the drive letter simply weren’t there.Some (but not all) of this quirk of path parsing persists today.

[Raymond is currently away; this message was pre-recorded.]