Defragmentacja dysku

0

Witam wszystkich!
Problem mam taki,ze chce napisac program do defragmentacji dysku tyle ze nie wiem jak sie do tego zabrac.Wiem na czym ten proces polega i z tego co gdzies przeczytalem to informacje o wszystkich plikach na danej partycji sa w jej tablicy,ale nikt juz nie napisal jak sie do tych danych dobrac lub chocby ja znalezc,a jak juz do niej dojde to jak wedlug tych informacji odczytac i zapisac dane sektory?Programuje w c i c++ wiec moze tam sa jakies funkcje,myslalem tez o assemblerze gdyz chcialbym defragmentowac poza windowsem.Jezeli zechce ktos pomoc to z gory wielkie dzieki,jakies przyklady tez beda mile widziane.
Jeszcze raz dzieki!

0

O assemblerze w Windows zapomnij - nie daje Ci żadnej możliwości ponad to, co oferuje C++. Poza Windows - to już zależy od ciebie i środowiska pod, które chcesz tworzyć.

Sposób wykonania defragmentacji zależy od formatu partycji, którą chcesz defragmentować. Musisz otworzyć dostęp do partycji w trybie binarnym (Winapi: CreateFile), zależnie od formatu odczytywać bloki danych, odpowiadające położeniu plików (Winapi: ReadFile), zapisywać je w innym miejscu (Winapi: WriteFile), a na końcu zamknąć plik partycji (Winapi: CloseHandle). Łatwe nie?

Nie. Bo jedynym i największym problemem tego zadania jest znajomość organizacji danych na dysku w formacie partycji. Z partycjami FAT nie będziesz miał żadnego problemu, ale NTFS to ogromna gmatwanina opcji (z szyfrowaniem i kompresją włącznie) więc przygotuj się na jazdę bez trzymanki. Nie ma "uniwersalnego" rozwiązania na defragmentowanie dowolnego typu partycji, więc inne formaty mogą nieść za sobą jeszcze inne wyzwania.

0

Dzieki za szybką odpowiedz!
Ale muszę przyznać,że pewnej rzeczy nie rozumiem.Wiem już jak dostac sie do partycji i jak ją odczytywać.
Pytanie jest takie:skąd będę wiedział w którym miejscu partycji znajduje się właśnie czytany plik,na ile częsci jest on podzielony,która jest początkiem,a która końcem no i gdzie one sie znajdują?Czy te informacje będą w opisanych przez ciebie blokach,które mam odczytać?Co do formatu partycji to biorąc pod uwagę moje zaawansowanie w tym temacie to najpierw zajmę się fatem,a jak coś z tego wyjdzie to będę próbował z innymi.O assemblerze myślałem pod kątem programu niezależnego od systemu,korzystającego z przerwań biosa(taki mini system z jedną funkcją)ale to tylko moje pomysły.
Tak czy tak to jeszcze raz dzięki za zainteresowanie tematem! </asm>

1 użytkowników online, w tym zalogowanych: 0, gości: 1