Chris,
for a single user app that's a valid approach, as you also keep out virus scanners, and virus scanning a dbf does not make much sense, as long as it's really a dbf ther are few bytes that could be occupied by a virus and not be detected as either a header defect or invalid data.
I also think, that an external live backup always lacks one thing: You never know about pending write operations in buffers. Doing a backup from inside the application itself is easier in that aspect, as you can do it, when everything is saved from table and view buffers.
I'd rather recommend creating a backup database via CREATE DATABASE ...backup and using COPY TO .... DATABASE backup instead of INSERT INTO TABLE, as it can do two things: a) copy with long field names and via the WITH CDX option you can also save indexes. Yes, you can recreate them, but you need to know which indexes exist, so you need at least to store some more meta data about the tables, as that expression is stored in the cdx file itself and if that is corrupt you don't get at it to repair the cdx.
That said it's of course a good idea to store some meta data about the database, tables, views, indees, etc. One easy ting to do this is o create a program able to reproduce the database structure: GENDBC does create such a program.
@audiopro: I won't be too proud in only using short names and dos style tables, because of coming from way back there and being used to it. VFP tables and DBCs have great features. You throw away several good things, if you don't make use of that, and even if you use short names in dbc tables and make use of referential integrity, efault valuesand such, the one valid reason for long names is they better self document what the field is storing.
I for example, am a big fan of long speaking table and field names. As the best project documentation tends to be the program itself, it's the only thing that is non optional to change, if you change the code, add a feature etc., you can of course also document what your short names mean, but you need to be very diligent to keep that in sync with data and code.
Bye, Olaf.