I have an old precompiled FoxPro application: The American Physical Society's "First 100 years" CD-ROM, that contains many article reprints, organized using a FoxPro database.

All too often, when I started this application, it incomprehensibly stopped with an "I/O Operation Failure". Why?

Search Google and you'll find that some Web sites will tell you that you need to change your CONFIG.NT file. That is NOT it.

Search some more, and some Web sites will tell you that you need to change your environment variables. That is NOT it.

Yet other Web sites will tell you that you need to patch your FoxPro library or executable. That may be a good idea, but it is NOT why the program fails.

No, the real reason is truly silly. The precompiled executable contains references to paths that only existed on the developer's machine where the executable was prepared. If one of these paths happens to refer to a drive that is presently unreadable (e.g., a CD-ROM with no disc in it) you get the above error.

The simplest way to solve this problem is to use a binary editor, open your executable (AIP100.EXE in my case) and change all references to X:\<path> (where X represents a drive letter between D and Z, and <path> is some arbitrary path information) to C:\<path>. The path doesn't have to be a valid one; the drive must be valid and readable.