Hacer un desfragmentador, en teoría
, no es tan complicado. Al igual que hay una función que te devuelve los cluster de un archivo, hay otra que te devuelve una lista de cluster libres y otra que permite mover la información de un cluster a otro. La diferencia entre unos desfragmentadores y otros, es el algoritmo que utilizan para reorganizar los cluster, y ahí es donde reside la verdadera complicación.
De todas formas un desfragmentador ya son palabras mayores. No me metería a hacer uno por dos motivos, es un trabajo inmenso y te arriesgas a que si haces algo mal perder la información almacenada en el disco. De todas formas un pequeño programa que desfragmente un solo archivo no resulta tan descabellado, me lo apunto para mi lista de proyectos interesantes ...