Please note that this verion is not compatible with the E+ and F+ disc
formats available on RISC OS 4. It will not corrupt the disc, but may bomb
out part way through optimisation since various assumtions it makes (constant
dir size, number of files per directory etc.) are no longer valid.
This program can potentially increase the free space on any FileCore based filing
system. This free space which is created comes from the wasted space in
shared fragments. !PackDisc rearranges which files share fragments with each
other in such a way as to minimise the remaining wasted space.
PackDisc is ideal on directories which have constant contents and several
small files, for example application directories, as the small files can be
rearranged more effectively and the space saved will remain saved.
It may also be useful for PD libraries or magazine discs or anyone else who
wants to use every last sector on a floppy - it can usually save at least a
couple of KB from a typical floppy. I saved 11K on a copy of the RISC OS 3
App1 disc. On my whole hard drive I saved about 10MB. [historical note - at
the time that was written, a hard drive was typically less than 500MB]
The whole of the re-arrangement is done using high-level filing system calls
to minimise the risk of corrupting discs. However, the FileCore bug which
can corrupt nearly-full discs *could* rear its ugly head. I have not had any
problems with the current version. An early development version *did* cause
a corruption of a couple of very large files but these are handled
differently now so the corruption should not occur.
Shortcomings of this version include:
- Single tasking (although it can be run in a taskwindow). Options
(ie the display output level and names of temp directories) are changed
by editing a line in the program code rather than from a front end.
- Needs a fair amount of free disc space to operate in.
- Uses far too many file operations. This makes it rather slow. A version
using lower level operations would be able to go a lot faster.
- Will not work properly if any other program is accessing the disc at the same time
(or rather writing to it).
- Does not cope gracefully with errors. The user must replace files which
are stuck in its temp directory.
Having said that, errors do not occur in my experience unless another
program accesses the disc at the same time or there was too little free
disc space.
- Cannot check potential savings without first doing it. This makes for
lots of tedious copying which may not free any space.
- Can cause the free space map to become more fragmented during the course
of normal operation. This can be partially alleviated by a *Compact,
which PackDisc does automatically if the map becomes very fragmented.
- Is slowed down considerably by a very fragmented free space map. This
and the one above do not work together very well...
- The optimisation algorithm is not perfect and sometimes gives
sub-optimal arrangements. Indeed I have seen negative savings
occasionally.
- Will not work correctly on a disc with 2GB or more of free space.
If you have any problems, mail me [email link removed].
Future development of PackDisc has been taken over by
Patrick Mortara [email link removed], so contact him with
any suggestions for future versions, or if you want to get the latest version.
Back to Steve's Home Page
Page put together by Steve Lee - now "officially abandoned"