Maybe I was too strong on the aspect you shouldn't need these checks for existence of tables, because my point of view was focussing on the rule of thumnb an application should know by itself where its data is. By it's setup, or by creating its database in the inital run. In all these scenarios I see it as an advantage you won't ever neeed this kind of existence checks.
To show one more aspect, if you think about an application where different users each have their own database - it's not necessary to separate data by separation of files, your application can put data of multiple users into one general database and filter the access to data belonging to each usser.
Another line of thinking may be you want to create databases like other applications create documents. A scenario where users usually decide where to store their documents within the directories. One thing that speaks against the user specifying where to store some database or table is, that when using this idea a user will usually want to be able to go to such a directory, double click a "document", which in your case is a dbf or dbc, and then your application should be associated with these file extensions, dbf or dbc. But that makes thee file extensions unavailable to any oother foxpro applicatios, so that's a bad idea. Even though it is technically possible to let a doubleclick on some dbf or dbc file start your application, what should other Foxpro applications do, that also want to associate their data with their application, and it's like having multiple image painting applications each wanting to associate image file extensions to themselves.
With a databse application you expicitly have the chance to hide this location of files from users. When you also take care of backups, then you make it easier for users, they don't need to know where their data goes. I don't want to narrow your ideas, though, do as you like, just think about whther it really is necessary or good or which strategy to go about data is better.
One more piece of knowledge here is that you can determine where some special folders are, like a windows users documents folder for their single user databases or directoreis for all users in case your application should handle data for mutiple users. Last not least applications that will have a shared database not only for multiple users/user accounts on one (home) PC, but for multiple users of a company, in something called a share, conceptually a server side directory all workstations can access.
So that's one aspect to think about when you start programming an application. Should data be separate per user? Is it a single PC application stopring data locally, again per user or for all users? Or is it an application needing a central databse. It could even be in different offices around the world and then need databses on the internet. Which would also be something you wouldn't let the user decide but prepare for him automatically. You would rather host a database server like MySQL and access that, DBFs on the internet are less of a usual scenario, even for FoxPro applications, though there is one sample scenario for that, too, if you program a website that runs on the basis of VFP code and has a local database (from the point of view of the application) and the accessibility ofd a website through the internet makes this local database a central worldwide databse for every user.
One thing is very common in all these scenarios: The user wil know what application to start, but won't need to know where the data is. That's usually considered an advantage of database applications in comparison to applications working on (binary) documents or other files, like images. And the inconvenience to need to know where files are also led to the introduction of a users documents folder in Windows, in the end, and the Downlaods, Videos, Muisc, Pictures special folders. So there already is a bse structuring of where which type of files or data goes.
Chriss