Backup To CDR Burner
This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in
Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything
else useful to implementing this project. Everything I have prepared to help you is right here.
This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is
fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the
define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.
Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many
other projects of my own.
Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.
You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.
Please do not email me about this project without reading the disclaimer above.
The Roxio (née Adaptec) Easy
CD (Compact Disc) Creator is not
suitable for routine backup because it makes you respecify the list of files to backup
every time. If you use their layout save, it won’t capture new file in the
directories you back up and it complains about any deleted files.
What you want is a back that works by taking either:
Now how do you take this list of files and get it them on
- A list of directories, directory wildcard, files and negative wildcards and feeds
to produce the list of files that need backing up.
- You leave special marker files lying around your disk that give hints to the backup
software what needs to be backed up when. The files could have zero length, e. g.
never.!!! means never backup this directory or its children.
daily.!!! means backup this directory and its children daily.
monthly.!!! means backup this directory and its children
trip.!!! means backup this directory and its children just
prior to taking a trip.
A directory might have multiple marker files in it. If you want to get fancy you can
put additional information inside the marker files.
Just prior to the backup, your utility scans the disk looking for marker files and
composes a list of files to be backed up. You could use automated tools to manage these
files. You can get a list of unmarked directories, so you don’t forget something
If you wanted to write your backup at a lower level, there are several things to
- Use the file at a time method where you use a driver to tread the
CD much like a hard disk.
The result is not as fully compatible as the second method.
- You create a phony Roxio CD
Layout file and fool it into thinking it is one of its own. Unfortunately this is a
binary file and the format is undocumented. However, you may be able to figure enough
of it out for the current purposes. The bulk of it is just a list of filenames preceded
by a length byte.
- Create a giant 600 MB *.cif or *.iso file which is a CDR image, including data. Then feed that to Roxio
- Backing up and restoring the platform dependent file attributes, e.g. owner,
read-only, create-date, last-accessed-date…
- Making sure you have exclusive access to the files during backup so nobody changes
them while you are in the process of backing them up. You want to guarantee a
consistent set of files on restore.
- Spanning. If every thing won’t fit on one CD,
DVD (Digital Video Disc), floppy, tape etc, how do you split files over the
boundary and put them back together on restore.
- Creating an index to the backup, so that you don’t have to scan the entire
backup from beginning to end just to restore one file.