For a better defragmentation, spacehogs must be divided in 2 parts:
- temp/cache folders, user defined files/folders wich are very frequent modified/created at the end of zone 3;
- archives, disk images, multimedia files... less speed important files in zone 4, AT THE END OF THE PARTITION.
The files in zone 4 must be moved BEFORE the optimisation in the other 3 zones, to make more place for usual files.
This way, big files are rarely moved by JkDefrag in future runs.
I make this optimisation by running JkDefrag twice on each partition, first pass to create the zone 4 with useless files(include option) and second pass with exclde on those files.
Totally waste of time.
You can do it by default in future builds of 3.x (not waiting for 4.x).
And for portable guys like myself, workyng with huge number of big files, plugging 2 hdd each with 3 partitions in more than 3 computers, having very "colored" drive letter assignements, running JkDefrag and setting each run manually, twice for each partition, every 2-3 days is a real pain.
JkDefrag, when launched should use ini file in his dir for default settings and look for ini files on each partition root.
If found then use it, if not, use defaults.
This way, different purpose partitions will be defragged based on user wish.
SpeedDisk by Symantec works this way on w9x and is doing a great job.
Other great thing SpeedDisk is doing is the capability to move ALL files, even on active partition (JkDefrag or the used api is not capable even on partitions with NO OPEN HANDLES - tryed this with BartPE and chkdsk /x and red zones are still present and log contain unmoved files).
The daily used files are optimised in 4 zones by SpeedDisk:
- zone 1: pagefile, frequently accessed(not modified), sorted in 3 subzones (under 1 week, 2 weeks, 3 weeks) and by full path name);
- zone 2: files falling between z1 and z3 balanced by time and full path name;
- zone 3: mostly modified, sorted in 3 subzones (under 1 week, 2 weeks, 3 weeks) and by full path name);
- zone 4: temporary/cache/dump/cookies etc. folders/files;
- zone 5: FREE SPACE;
- zone 6: archives, iso, images, music, movies, dmp, hibernate (less speed important wildcarded files/folders) sorted by full path name.
SpeedDisk ALWAYS begins with z6 to make space to move important files.
I see builtin defrag is capable to defrag ALL files on dismounted partitions and JkDefrag can't.
Are you sure not miss something in api's control ?
Also, can you isolate wich files are necesary for JkDefrag to run at boot time like chkdsk?
If the MS API's are week and undocumented, perhaps some openSource can help?
No matter how, JkDefrag can be the best/lightest defragger for w2k-vista.
Ah, never tryed (mea culpa), what do I need to compile the souces (wich compiler and what extra libs).
I don't intend to steal your work, just to get an idea and try to improve if I can.
I'll try even if the only language I know and use is pascal dos/console mode, no gui knowlege.
I'd like to help you.
Just ASK !
I've seen at http://www.kessels.com/forum/index.php?topic=1232.0
the script idea for 4.x. Too complicated for basic users. I think an simple ini type with 1/0 selection for enable/disable and commented predefined keywords is more suitable for users (my opinion). Also this can simplify the program understanding/interpret of the script file because scripting cfg file need compiler like interpretation, ini style has fixed decisions (my opinion).