Backupprogramm für Konsole



  • Hi,

    ich habe vor ein Konsolenprogramm zu schreiben das ein Backup einer Partition anlegt. Ich habe bereits etwas Erfahrung in C++ und C. Jetzt weiß ich nicht wie ich das ganze unter Windows realisieren soll.

    In erster Linie soll das Programm nur ein eine Kopie in einem anderen Ordner erstellen. Meine Frage wie mache ich das brauche ich dazu WinApi oder MFC?

    Danke für jede Hilfe.



  • Schau dir in der MSDN mal FindFirstFile() und FindNextFile() an, damit kannst du alle Files einer Partition rausfinden. Da es dir ja nur um ein FlatCopy-Backup geht reicht es wohl einfach alle diese Dateien in einen anderen Zielordner zu kopieren - schau dir dazu CopyFile() an.

    Obs performanter geht darfst du mich nicht fragen 🤡

    MfG SideWinder



  • Welche Arten von Kopien gibt es den noch außer FlatCopy?



  • Hat jemand vielleicht eine Internet-Seite wo etwas drüber steht?



  • Peter2004 schrieb:

    ich habe vor ein Konsolenprogramm zu schreiben das ein Backup einer Partition anlegt.

    hier gibt es bereits drei hauptsächliche sachen, die gemeint sein könnten.
    c) volles backup der inhalte der dateien.
    Um das zu machen, laufe mit FindFirstFile/FindNectFile durch das Hauptverzeichnis, lege Dir ne Liste aller zu kopierender Dateien/Ordner an und kopiere dann alle Dateien/Ordner. Da das Programm selbst sehr simpel ist, kannste die freie Zeit benutzen, rauszufinden, wie man am schnellsten eine datei an einen anderen ort kopiert. mein tip: zwar einfach CopyFile verwenden, nicht WirteFileScattered oder asynchrones WriteFile (am besten an nem IoCompletionPort), aber mehrere threads. Nen leichten Packer dranzuhängen ist immer ok. mindestens RLE, um große *.bmp-dateien klein zu machen.
    dafür ich würde, um sowas zu machen, mir die files mit FindFirstFile/FindNextFile suchen und dann der konsolenanwendung rar.exe (ist im winrara-verzeichnis dabei) übergeben.

    b) volles backup aller dateien mit allem, was sie haben.
    Kannst verzeichnisse und dateien auch mit CreateFile öffnen und dabei irgendwie BACKUP_SEMANTICS angeben. dann kriegste unter umständen gar nicht den wirklichen dateiinhalt, sondern nur was irgendwie gepacktes, was windows beim zurückspielen auch wieder irgendwie auspacken kann. offensichtlich bei sparse files, die müssen ja nicht ganz geschict werden, sondern bloß mit den sektoren, die win selber auf die platte schrieb. virtuelle lücken in gigabytegröße braucht keiner im backup.
    dafür würde ich das fertige backup von ms benutzen.

    a) volles backup der partition inclusive aller, aller sachen (außer gerade man dem swapfile und dem hibernation file).
    das geht online!!!
    seit xp gibts ne programmierschnittstelle dafür. also unbedingt das neue win32 sdk saugen und alle helpfiles lesen.
    oder einfach die snapshot.exe nehmen (google drive snapshot). so mache ich es. es ist wieder ein konsolenprogramm.
    das nachprogrammieren wird aber auch gerade noch möglich sein.

    Ich habe bereits etwas Erfahrung in C++ und C. Jetzt weiß ich nicht wie ich das ganze unter Windows realisieren soll.

    ich auch nicht. ich hab versucht, die viele möglichkeiten aufzuzeigen. die auswahl der für deine aufgabe angemessenen ist erstmal der schiwerigste teil des programmierens.

    In erster Linie soll das Programm nur ein eine Kopie in einem anderen Ordner erstellen. Meine Frage wie mache ich das brauche ich dazu WinApi oder MFC?

    mfc brauchste kein stück. das geht ganz ohne mfc und es geht als konsoleanwendung.
    willste natürlich grafik haben, so fortschrittsbalken mit bunt, dann ist dafür mfc ganz ok. das backuppen selber geht aber immernoch ohne, und nur die bunte grafik geht über mfc.



  • Peter2004 schrieb:

    Hat jemand vielleicht eine Internet-Seite wo etwas drüber steht?

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/findfirstfile.asp
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/findnextfile.asp
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/copyfile.asp
    und so weiter für jede winapi-funktion, die man nannte. oder einfacher: google nach "msdn CreateFile" fragen, um auf die windows-seite zu kommen, die die hilfe zu CreateFile hat.
    oh, ich vergaß oben zu erwähnen, daß es auch mit sachen um
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/storage_start_page.asp
    geht.
    hab leider vergessen, weii die tollen funktionen heißen, um sich ein echtes image zu ziehen.


Anmelden zum Antworten