Défragmenter un fichier

Description

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'AI utilisée est celle de Windows. Il n'y a AUCUN accès directe à la table de partition. Il n'y a donc AUCUN RISQUE de perte de données du fait de la journalisation interne réalisée par l'API. Si vous faites confiance à Windows, vous pouvez faire confiance à ce code.

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 car cela serait très très très long puisqu'il faut obtenir et mettre à jour la liste des fichiers fragmentés et la rafraichir à chaque fois qu'une écriture est faite par un autre processus.

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.

Conclusion :


Ce code ne fonctionne que sous Windows NT/2K/XP...

Testé sous Windows XP Pro...

N'hésitez pas à commenter et à noter !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.