Thursday, March 18, 2010

Riddle me this, Batman.

So, what's the difference between these two things?

  1. FILENAME.TXT
  2. FILENAME.txt

Nothing, right, especially if you're on a Windows system?1

Well, according to one of our ASP vendors they are completely different.  We are setting up a new interface with them, and have been testing the process through their automated web-portal upload tool.  Item #2 works just perfectly fine.  However, if we try to upload a file named like Item #1, their portal tells us that it's not a valid text file.

As a developer, this makes absolutely no sense to me.  If you are determining file type based on the extension, instead of inspecting the file itself or letting the user specify the file type, then obviously you're approaching this with a Windows-centric mindset.  After all, file extensions don't have any inherent meaning on UNIX/Linux systems, at least not like on a Windows box.  So, that being the case, how difficult is to either either use a ToUpper() or ToLower() type function on the filename, and then inspect the extension?  To require your clients to meet an arbitrary filename case rule is just asinine.

What makes it even more frustrating is that the application that generates the file is a DOS-based app, so it is going through the DOS command interpreter.  Since the DOS command interpreter does not register an entry for long file name, the file name is automatically converted to all upper-case by the system.  The only way to get the file to load is for the user to manually rename the file, changing the case of the extension.

*mumble* *mutter* GRAH!!!!!!

That is just stupid, horrible, disgusting, nasty code, and this is a major national ASP in this particular product space.  (No, it's not Microsoft).

1For the purposes of this argument I will ignore Posix-compliant filing systems that treat all file names as case-sensitive.  I develop software that runs on Windows systems.

No comments:

Post a Comment