Ce code permet d'obtenir la carte d'allocation des clusters de votre disque dur, les extents libres, un peu à la manière du défragmenteur Windows, et ce pour n'importe quel type de partition supportée par Windows.
Précision IMPORTANTE : l'API utilisée est celle de Windows. Il n'y a aucun accès directe à la table de partition. C'est le driver du système de fichier qui effectue l'opération de déplacement des fragments et ce de manière transactionelle de sorte qu'aucune perte de données ne soit possible.
Vous pouvez aussi obtenir la liste des fichiers fragmentés mais cela prend 30min sur une partition de 90Go... Vous pouvez enfin défragmenter un fichier particulier (rapide) et d'obtenir la liste des ces extents. La défragmentation complète n'est pas prévue.
Ce code peut servir par exemple, à savoir quels sont les clusters d'un fichier et à défragmenter des gros fichiers utilisés par votre application.