Methinks that creating the indexes on the open all the time is going to slow the app down. I'd suggest that instead you build a method/function that CHECKS for the index file, and if it does not find one, then it creates the indexes. This will allow you to deal very easily with index corruption. I've done this with specifically structured intermediate tables used in import routines that were susceptible to corruption.
Corrupt indexes? Simply delete the .cdx file and then run the app. Voila, new indexes. I don't know enough about the .DBC to know whether or not the index definitions are stored in it, if so then you could use the .dbc to get the index definitions for the rebuild, rather than hard coding them.
G'luck with it.
John
"It came to pass"