bonjour,
j aimerais savoir comment programmer un defragmenteur de disque dur,
en ecrivant sur chacun des secteurs du disque dur ? quelle bibliotheque utiliser ?
SDL ? Allegro (habituellement)?
merci d avance .
bonjour,
j aimerais savoir comment programmer un defragmenteur de disque dur,
en ecrivant sur chacun des secteurs du disque dur ? quelle bibliotheque utiliser ?
SDL ? Allegro (habituellement)?
merci d avance .
Un défragmenteur de disque dur avec Allegro ou la SDL ? Uniquement pour l'affichage alors. Pour le reste, ça ne se fait pas du tout à la légère :
- Ça dépend de ton système d'exploitation (pour les accès disque) ;
- Ça dépend ENTIÈREMENT du système de fichier que tu utilises ;
- Cela implique des stratégies sophistiquées qui dépendent notamment du taux de remplissage de ton disque. En particulier, il est impératif que ton défragmenteur puisse être interrompu à n'importe quel moment sans compromettre l'intégrité du système de fichier… y compris par une panne de courant. Une fois cette condition remplie, il faut encore trouver des compromis pour minimiser autant que possible les mouvements des têtes.
En bref, pas simple. Mais la difficulté est principalement algorithmique. Une fois l'algo au point, il ne s'agit que de faire des lectures-écritures de secteurs et de mettre la fenêtre utilisateur à jour. Pas de section critique ni temps réel.
Tu veux savoir cela pour le principe, ou tu cherches réellement à écrire un défragmenteur ? Et dans le dernier cas, tu ferais cela pour l'exercice ou pour satisfaire un réel besoin ?
ce serait vraiment un bon exercice, en plus ça permet de comprendre comment marche le systeme de gestion du disque dur. sinon je cherche sur windows, et en utilisant codeblock tout simplement. je cherche pas un truc trop compliqué, mais ce serait assez interessant
D'un type de formatage de disque dur. On ne defragmente pas de la meme maniere un disque a plateaux d'un disque SSD, et pas non plus de la meme maniere un disque en FAT32 ou un disque en NTFS, ...
Ton probleme, pour le moment, n'a rien a voir avec le C ou un langage de developpement, c'est un probleme d'algorithmie.
Ton premier probleme est de trouver comment savoir qu'il y a de la fragmentation (interne et externe), et comment savoir ou se trouve un fichier sur le disque.
Mon seul très gros conseil.
Ne teste ton programme que dans une machine virtuelle.
Tu risques sinon de détruire ton données de manière définitive.
Cherche la documentation du système de fichier à défragmenter.
Remarque: Il est aberrant de défragmenter un SSD.
Notez que Windows propose des fonctions haut niveau de défragmentation, via DeviceIoControl(). Il ne s'agit plus là d'écrire secteur par secteur, seulement de déplacer des fichiers vers des clusters libres (voir "Defragmenting Files" sur MSDN).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager