Defragmentieren



  • Abend,

    Würde mir gerne ein kleinen Programm basteln ohne viele Features, welches Defragmentieren kann...
    Klar, es gibt die Defrag.exe, aber die reicht für meine Zwecke nicht.
    Ich möchte einfach, dass wenn man auf "Defragmentieren" klickt, sich die gewählte Partition defragmentiert und der Status in Form von "%" angezeigt wird...

    Hab von Google gefragt, aber keine passende Antwort bekommen 😑

    MfG.



  • wenn du dir das wirklich antun willst (was ich nicht glaube), dann guck dir den source von MyDefrag (aka. JkDefrag) an.

    http://kessels.biz/JkDefrag/

    oder, was vermutlich vernünftiger ist: verwende gleich MyDefrag, oder schreib ein(e(n)) MyDefrag Script/Mod/Erweiterung.



  • Oder der Duden wär auch mal nicht so schlecht 🙂

    http://www.duden.de/



  • Knall Boom schrieb:

    Oder der Duden wär auch mal nicht so schlecht 🙂

    http://www.duden.de/

    haha, der war gut 😃



  • @hustbaer: Danke, werde ich mir mal angucken.

    @Knall Boom: Verstehe nicht was du meinst.



  • Also mich interessiert das Thema auch, nur ist mir schon bewusst, dass das Thema noch einige Nummern zu hoch für mich ist. Wäre aber schön, wenn jemand mal die allgemeine Technik hinter dem Defragmentieren erklären könnte. Wiki ist da sehr schweigsam - finde ich.

    Wie würde man das in Schritten realisieren?



  • shaun1981 schrieb:

    Wie würde man das in Schritten realisieren?

    • freien Platz suchen
    • Datei suchen die da reinpasst
    • Datei reinkopieren bzw. verschieben
    • alten Dateiplatz löschen
    • gehe zu Start - ziehe keine 4000€ ein


  • Oha^^
    Naja also JKDefrag ist nicht sehr einfach, mal sehen, wenn ich mal viel Zeit habe, werde ich mir das mal ganauer angucken...
    Bräuchte aber eher eine Seite, wo da kürzer, also ohne großen "Schnick-Schnack" erklärt wird...



  • Was willst du erklärt haben? Wie es prinzipiell funktioniert?
    Oder wie man es umsetzt?



  • Moin,

    generell musst Du Dich auf die Festplatte begeben und Dich durch die NTFS-Daten (oder FAT32/$WHATEVER) wühlen ... schließlich musst Du wissen wie die Dateien auf der Festplatte liegen und was Du wie ändern musst ... die einfachen Datei-Operationen sind transparent vom Filesystem

    dann hast Du noch ein Optimierungs-Problem wenn Du eine Fragmentierte Datei hast aber keinen freien zusammen hängenden Platz ... dann musst Du Dateien umschieben etc.

    hand, mogel

    PS: noch Lust ^^



  • mogel schrieb:

    shaun1981 schrieb:

    Wie würde man das in Schritten realisieren?

    • freien Platz suchen
    • Datei suchen die da reinpasst
    • Datei reinkopieren bzw. verschieben
    • alten Dateiplatz löschen
    • gehe zu Start - ziehe keine 4000€ ein

    Das war genau das was ich darüber wissen wollte. Lust hätte ich schon, aber damit warte ich noch. Habe mit anderen / einfacheren Sprachmerkmalen noch meine Probleme. THX



  • mogel schrieb:

    generell musst Du Dich auf die Festplatte begeben und Dich durch die NTFS-Daten (oder FAT32/$WHATEVER) wühlen

    Nope. In Windows gibt's ne eigene Defragmentierungs-API, die AFAIK vom Filesystem unabhängig ist. Auf jeden Fall muss man nichts mit irgendwelchen NTFS Strukturen machen.

    ... schließlich musst Du wissen wie die Dateien auf der Festplatte liegen und was Du wie ändern musst ...

    Genau das kann man über die Defragmentierungs-API ermitteln. Und natürlich das "Verschieben" von Clustern die zu einer Datei gehören beantragen etc.



  • xD
    Ich glaube ich vergesse das mal ganz schnell, das ist wohl doch noch ne Nummer zu groß für mich...:(

    @hustbaer:
    Welche API ist das ?





  • @C++Lerner:
    DeviceIoControl +
    FSCTL_GET_VOLUME_BITMAP
    FSCTL_GET_RETRIEVAL_POINTERS
    FSCTL_MOVE_FILE

    Ist auch in der MSDN/Platform SDK dokumentiert. Ist allerdings nicht ganz einfach sich da einzulesen...

    @volkard:
    Hab erst grad gemerkt dass du schon geantwortet hast. Steht natürlich alles in deinem Link.



  • hustbaer schrieb:

    mogel schrieb:

    generell musst Du Dich auf die Festplatte begeben und Dich durch die NTFS-Daten (oder FAT32/$WHATEVER) wühlen

    Nope. In Windows gibt's ne eigene Defragmentierungs-API, die AFAIK vom Filesystem unabhängig ist. Auf jeden Fall muss man nichts mit irgendwelchen NTFS Strukturen machen.

    Möchte meine Antwort relativieren 🙂

    Ich sehe gerade, JkDefrag wühlt wirklich in NTFS Strukturen rum - zum Analysieren der Disk.
    Notwendig ist es nicht, aber es wird vermutlich irgendwelche Vorteile bringen. Also dass man schneller an die nötigen Daten kommt, oder zusätzliche Informationen bekommt, die man über die Defragmentierungs-API nicht bekommt.



  • Reines Defragmentieren geht auch so.
    Aber man will ja die 580G P0rn ans Ende der Platte sortieren, während die C++-Header-Files recht weit vorne stehen. Weil die Platte vorne schneller ist als hinten.



  • Weil die Platte vorne schneller ist als hinten.

    Vorne = mitte?



  • ???????? schrieb:

    Weil die Platte vorne schneller ist als hinten.

    Vorne = mitte?

    nö. hinten ist innen.



  • volkard schrieb:

    ???????? schrieb:

    Weil die Platte vorne schneller ist als hinten.

    Vorne = mitte?

    nö. hinten ist innen.

    Nett gesagt 😃

    Ist mir privat aber gottseidank alles Schnuppe, dank Intel SSD 🙂


Log in to reply