
I figure it is a dangerous thing to mess around with a backup program. That is a mission critical application. You have to get it right. So I figured I would first test out the backup program by restoring to a new machine. That will be a hard core test. The new machine will not have any of the software or files already. If I can restore to there, I should be good. Then it will just take a final test to ensure I can restore to my original system.
My initial source of concern to want a backup program is the Windows desktop. A little research has shown that the desktop is really a folder on the file system. Any files that are stored directly on the desktop are in this folder. And and files referenced on the desktop with a shortcut are stored as link files in this folder. This seems simple enough. Maybe I can just copy the entire desktop folder for backup purposes.
What other things could a “smart” backup program do? By smart I mean a program which will do something other than making an image of the whole hard disk. I know I need my Internet Explorer favorites. And I also want my Internet Explorer security settings. There are some specific data folders of interest on my hard drive. Maybe my program can let the user choose these. I also like the theme of my Windows configuration. For example I like my wallpaper and screen saver.
Obviously there are some tricky points. Can I easily backup to a different version of Windows? And what about storing off portions of the Windows registry? Then there are some design decisions to make. Should I implement some strategy for organizing different backups? Do I allow incremental backups? Do I use compression on the backed up data?
I doubt any of my research and resulting program will turn into a commercial product. It is just fun to think about and investigate. I knew a guy that ran a business developing and selling software backup solutions for MS-DOS. Perhaps I can talk him into letting me have his source code.