Case Considerations in File Names

When you are creating a Web site, you will find yourself creating
pages, and adding to those pages other elements such as graphics. Naming these
files and linking to them is one of the things that can solve problems for you,
or create them. Case is an example.

One of the reasons why this matters is that the Internet is made
up of a large number of different machines, with different operating systems,
that handle names in different ways. The main difference is between servers
running some version of Unix (the majority of Web servers) and those running
Microsoft’s Windows NT (the scrappy newcomer). These two platforms do very different
things with the case of file names. NT doesn’t particularly care. As far as
it is concerned, Index.html, index.html, and INDEX.HTML are all the same file.
In the Unix world, these are three different files, and you could have all three
in the same directory, coexisting peacefully. Now, if you knew that you were
going to be always working with NT servers, you might think “Great, I don’t
need to worry!” But in fact you are very likely to be working with Unix
servers at some point, and you will definitely need to be concerned.

You might, at this point, think that all you need to do is be
consistent and you wouldn’t get into trouble. Sadly, experience shows that this
is not enough. Under some circumstances, a file that has a single capitalized
letter in its name will suddenly turn into a file that has all capital letters.
I have not yet worked out all of the factors needed to make this happen, though
it seems to involve FTPing file, but it is disconcerting when it happens. You
know you uploaded the file, but the link doesn’t work, and when you investigate,
you see a file with all capital letters in the name. The best way to prevent
this is to use all lower case letters in all of your file names. And you will
find if you talk to professional code-slingers that this practice is used by
the vast majority. Since the pros do it, so should you. It is a good practice.

Adopting standard naming practices is even more help when you
work as part of a team. In one project I remember, for an automotive software
company, I was working with a designer who used a Macintosh, who fed me images
via e-mail, which we uploaded to a Unix server for internal testing, before
shipping it to the client, who used NT servers. Since I was the only person
on the team with Web experience, we had a lot of problems before I was able
to convince everyone to adopt a universal naming convention including all lowercase
file names.

One other trick you can use to help out: the better FTP programs
will have an option to force all of your files to be lower case. In WS-FTP,
for instance, go to Options, Session to set this option.